关于消息处理的一个问题????
lc79 2002-01-29 04:32:59 大家还记得《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可能由于英语不好的原因吧,不能理解是什么意思!在这先谢了!