关于GetMessage和PeekMessage的CPU占用率问题

主循环部分一个是:
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}

另一个是:
while (true)
{
if (PeekMessage(&msg, NULL, 0,0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
break;
TranslateMessage(&msg);

DispatchMessage(&msg);
}
}

为什么在我机子上运行生成窗口的时候PeekMessage的版本CPU占用率是100%,而GetMessage的版本确很正常呢?
请高人指教下啊!
[452 byte] By [zsh_333-诸神的曙光] at [2008-1-7]
# 1
GetMessage 在没有消息的时候,会暂停程序,将cpu控制权给其他程序
PeekMessage 不管当前消息队列里有没有消息,都立即返回,所以会100%占用cpu
yahle-yahle at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...
# 2
在循环里Sleep(1)一下就好了。
不光是PeekMessage的问题,我曾经在VxWorks里也搞出过这样的问题,结果我的模块倒是运行得很好,把其它模块搞死了。
hyg2008-蓝色雨 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...
# 3
谢谢诸位!
zsh_333-诸神的曙光 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...