|
|
对于win32平台下写代码时,关于CPU占用的问题我一直不明白。
当我写消息循环时。
总是这样写
MSG msg;
msg.message = WM_NULL;
PeekMessage( &msg, NULL, 0U, 0U, PM_NOREMOVE );
while( WM_QUIT != msg.message )
{
if( PeekMessage(&msg, 0, 0, 0, PM_REMOVE) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else{
render();
}
}
然后CPU占用就是100%了。我知道while(true) 肯定是无限的一直调用。CPU肯定是100%,不过我看一些人的代码里,消息循环部分和我写的一样。程序里也没有sleep,但程序运行起来不是100%的CPU占用。
我真的很想知道这是怎么回事。请指点一二~ |
|