关于消息处理的一个问题????

lc79 lc79 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家还记得《VC++技术内幕》(第四版)的P212有这样的一段代码
volatile int nTemp;
for (m_nCount = 0; m_nCount < nMaxCount; m_nCount++) {
for (nTemp = 0; nTemp < 10000; nTemp++) {
// uses up CPU cycles
}
if (::PeekMessage(&message, NULL, 0, 0, PM_REMOVE)) {
::TranslateMessage(&message);
::DispatchMessage(&message);
}
我的问题是,当我将PeekMessage改为GetMessage时那个进度条为什么就前进的非常慢,而且我等了很久也就只显示了一格,我不明白的是按这我的理解每当程序执行完for (nTemp = 0; nTemp < 10000; nTemp++)后就会执行if (::PeekMessage(&message, NULL, 0, 0, PM_REMOVE)) 而这个for 循环应该是花不了多少时间的吧,如果改为GetMessage每当执行完for 后就可以处理消息队列里的消息了啊。为什么我改了后有那样大的差距啊?还有就是volatile 是什么意思,我看了MSDN可能由于英语不好的原因吧,不能理解是什么意思!在这先谢了!



...全文

相关推荐

Android应用程序消息处理机制

Android应用程序与传统的PC应用程序一样,都是消息驱动的。也就是说,在Android应用程序主线程中,所有函数都是在一个消息循环中执行的。Android应用程序其它线程,也可以像主线程一样,拥有消息循环。Android应用程序主线程是一个特殊的线程,因为它同时也是UI线程以及触摸屏、键盘等输入事件处理线程。主线程对消息循环很敏感,一旦发生阻塞,就会影响UI的流畅度,甚至发生ANR问题。这个PPT讲Android应用程序线程消息循环原理,主要涉及到Handler和Looper两个类,以及根据消息循环的不同使用场景,总结出三种线程使用模型。掌握Android应用程序消息处理机制,有助于我们熟练地使用同步和异步编程,提高程序的运行性能

罗升阳

消息处理状态机,一个消息处理框架代码

消息处理状态机,一个消息处理框架代码,接收Client发的TCP请求,入消息队列,主循环一次处理三条消息。

qlongonline

MFC 多个窗口消息共享同一个消息处理函数demo

VC MFC 多窗口消息共享同一个消息处理函数。

baidu_27583127

按键消息处理函数按键消息处理函数

按键消息处理函数,按键消息处理函数,按键消息处理函数按键消息处理函数

liuhongyi666

字符消息处理字符消息处理

该实例的功能是实现单文档应用程序界面中,当用户通过键盘键入字符时,在视图窗口依次显示键入的字符。当用户按下回车键时,进行换行输出。

liuhongyi666
评论 2
收藏 已收藏
分享
返回顶部
lc79
非技术类 1,663 成员 58,947 内容