为什么我用MsgWaitForMultipleObjects的时候经常调不出这个循环?
以下是代码:
while (TRUE)
{
DWORD Result=0;
MSG Msg;
memset(&Msg,0,sizeof(MSG)); Result=MsgWaitForMultipleObjects(1,&pClientMsg->hRecv,FALSE,INFINITE,QS_ALLINPUT); if(Result==WAIT_OBJECT_0)
{
stSource=pClientMsg->stAppent;
*pBody=pClientMsg->pBody;
pClientMsg->pBody=NULL;
m_MsgList.RemoveAt(pos);
delete pClientMsg;
return TRUE;
}
else if(Result==WAIT_TIMEOUT)
{
m_MsgList.RemoveAt(pos);
delete pClientMsg;
return FALSE;
}
else if(Result==WAIT_OBJECT_0+1)
{
//Sleep(1000);
//PeekMessage(&Msg,m_hWnd,0,0,PM_NOREMOVE);
//DispatchMessage(&Msg);
while (PeekMessage(&Msg,m_hWnd,0,0,PM_REMOVE))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
else
{
AfxMessageBox("1111");
}
}