在进行Windows编程时,经常需要使用Sleep()这个Windows标准API函数来实现延时等待。但该线程的最大问题在于,调用了Sleep后,整个线程全部被挂起。也不能处理Windows消息。
TfxSleep解决该问题。实现卡住等待超时的同时,可以处理Windows消息。
// 延时 ?时间, 期间能处理Windows事件
VOID TfxSleep(ULONG ulMilliSeconds)
{
DWORD lFirst = GetTickCount();
MSG msg;
do
{
if(PeekMessage(&msg,NULL, 0, 0, PM_REMOVE))
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
Sleep(1);
} while (GetTickCount() - lFirst < ulMilliSeconds);
}
TfxSleep详解
本文介绍了一种改进的延时函数TfxSleep,该函数在实现指定时间延迟的同时,允许线程处理Windows消息,解决了传统Sleep函数导致线程完全挂起的问题。
1469

被折叠的 条评论
为什么被折叠?



