15,471
社区成员
发帖
与我相关
我的任务
分享
g_eventIsRePlay.ResetEvent();
DWORD DwRet = 0;
DWORD dwExitcode;
MSG msg;
//等待系统消息分配结束,防止线程阻塞
while(1)
{
DwRet = MsgWaitForMultipleObjects(1, &m_ReplayThread->m_hThread, FALSE, INFINITE, QS_ALLINPUT);
switch(DwRet)
{
case WAIT_OBJECT_0:
break;
case WAIT_OBJECT_0 + 1:
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
DispatchMessage(&msg);
continue;
default:
break;
}
break;
}
//获得线程退出码
GetExitCodeThread(m_ReplayThread->m_hThread, &dwExitcode);
//如果线程正常退出,则释放相关线程对象
if (dwExitcode != STILL_ACTIVE)
{
delete m_ReplayThread;
m_ReplayThread = NULL;
}
else
{
AfxMessageBox("线程结束异常");
}