我在evc下编程,想在do{}while()函数中用一个时间函数等待一段时间,但在此函数执行期间又不影响别的线程的执行。
所以sleep函数看来是不行了,不知道那位高手知道这种函数?还请帮忙指点一下。谢谢!
last = GetTickCount()
while(GetTickCount() - last < duration);
先定义一个函数
BOOL PeekAndPump()
{
static MSG msg;
while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) {
if (!AfxGetApp()->PumpMessage()) {
::PostQuitMessage(0);
return FALSE;
}
}
return TRUE;
}
然后,你的do{}while()可以写成
do
{
...
Sleep( time );
PeekAndPump();
}while();
感觉WaitForSingleObject( ,time)比较好。
last = GetTickCount()
while(GetTickCount() - last < duration);
要占用一定的CPU处理时间,在移动设备上硬件资源本来就有限。