社区
C++ 语言
帖子详情
我在VC。NET 下建了一个空窗体,什么都没干,却发现CPU使用100%,这是为什么啊
tigerlhp
2008-03-15 09:03:36
我在VC。NET 下建了一个空窗体,什么都没干,却发现CPU使用100%,这是为什么啊
...全文
106
10
打赏
收藏
我在VC。NET 下建了一个空窗体,什么都没干,却发现CPU使用100%,这是为什么啊
我在VC。NET 下建了一个空窗体,什么都没干,却发现CPU使用100%,这是为什么啊
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Pause_break
2008-03-18
打赏
举报
回复
getmessage和peekmessage都是获取消息队列里的消息;不同的是getmessage在获取不到对应的消息时程序会被操作系统挂起cpu就让给其它程序,而peekmessage在获取不到合适消息时并不把控制权马上交回去他会让自己的程序得以再执行一段时间。
Rainstorey
2008-03-17
打赏
举报
回复
peekmessage基本用在游戏程序中.一搬窗口就用GetMessage.
sniperhuangwei
2008-03-17
打赏
举报
回复
peek是不管有没有消息都会返回,
get在没有消息的时候被阻塞,有消息才返回.
不知道对不对啊,没在win上写过程序.
过去的我
2008-03-15
打赏
举报
回复
消息不是加在这里的啊,是回调函数中处理的,你用vc自动生成一个win32的helloworld程序看看就知道了
tigerlhp
2008-03-15
打赏
举报
回复
那我应该怎么写
count();
paint(hdc);
这两个函数应该放在什么地方好。
0黄瓜0
2008-03-15
打赏
举报
回复
if()
{...}
else
{...}
都这样了,有消息要处理消息,没消息要处理你的else块,自然要占完cpu了.
michney
2008-03-15
打赏
举报
回复
这个叫做busy waiting
tigerlhp
2008-03-15
打赏
举报
回复
// 主消息循环:
while (true)
{
if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
if (msg.message == WM_QUIT)
{
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
tNow = GetTickCount();
int numT = 40 - tDur; //DWORD类型是无符号类型的
if(numT < 0) numT = 0;
if(tNow - tEnd >= numT || tNow - tEnd < 0)
{
tEnd = GetTickCount();
tDur = tEnd - tNow;
count();
paint(hdc);
}
}
}
我用以上消息循环就100的CPU处理,那消息循环有错吗
hastings
2008-03-15
打赏
举报
回复
恭喜你,编了个病毒程序..哈.哈..
tigerlhp
2008-03-15
打赏
举报
回复
照你说的做了。
/*
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
*/
用下面代码取代了上面的,立刻就100%的CPU使用。请教一下怎么回事?
DWORD tNow,tEnd,tDur;
while (true)
{
if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
if (msg.message == WM_QUIT)
{
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
tNow = GetTickCount();
int numT = 40 - tDur; //DWORD类型是无符号类型的
if(numT < 0) numT = 0;
if(tNow - tEnd >= numT || tNow - tEnd < 0)
{
tEnd = GetTickCount();
tDur = tEnd - tNow;
//count();
//paint(hdc);
}
}
}
相关推荐
使用
Windows Media Player COM组件播放视频-Visual Studio 2013-在Win XP上播放问题
嗨,我创建了
一个
Windows
窗体
应用程序,并从工具箱的容器子部分下添加了Windows Media Player COM组件。
使用
C#和.net 4.0框架,针对x86平台构建的应用程序。我在媒体播放器负载上具有以下代码,私有无效...
记druid 在配置中心下的
一个
大坑:
cpu
达到
100
%
记druid 在配置中心下的
一个
大坑:
cpu
达到
100
% 把我们的dubbo 应用移步到配置中心上去之后,
发现
我们的应用过一段时间就会出现
cpu
100
%的情况 (大概是12个小时),一开始
cpu
占用是2-5% 的样子,什么都没做,后面竟然用尽了
cpu
。。 把jvm 线程堆栈打印一下,
发现
线程数竟然达到了上万.....
发现
最多是这...
Thread中的Join问题
我在开发
一个
项目时,
发现
Thread.Join方法将导致
CPU
使用
率
100
%。由于项目的特殊性,我是在
一个
线程中
使用
了while,并在其中又开启了
一个
线程,然后等其完成。这样运行后
发现
CPU
使用
率达到了
100
%。显然
这是
不允许的。因此,在没有更好的办法之前,我
使用
了下面的这个方法暂时解决了问题。 int TimeCount=
100
;while(Threadname.IsAli
解决Gerrit的git unpack error问题
转自
VC
错误:http://www.
vc
error.com/?p=1805 问题描述: 由于neutron项目要换成全新的内部代码,原先仓库里的代码要全部废弃掉,于是简单地创建了
一个
空
项目
使用
git push --force将其置
空
。
发现
提交patch的时候,会
发现
如下报错: remote: Resolving deltas:
100
% (2/2) error: unpack
空
空
的一天
今天什么都
没干
,玩了玩游戏,哎,郁闷了
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-03-15 09:03
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下