LZ贴的代码好像与多线程没什么关系。
从语义上看,if语句中的break只能跳出内层循环,跳不出外面的那个while(1),所以会出现死循环。是否可以不要内层的while,直接写PeekMessage()。这样如果下一个消息不是WM_USER+3,跳出死循环,达到退出程序的目的
从语义上看,if语句中的break只能跳出内层循环,跳不出外面的那个while(1),所以会出现死循环。是否可以不要内层的while,直接写PeekMessage()。这样如果下一个消息不是WM_USER+3,跳出死循环,达到退出程序的目的
{
::Sleep(1);
while(::PeekMessage(&msg,NULL,WM_USER+3,WM_USER+6,PM_REMOVE))
{
if(msg.message!=WM_USER+3)
{
break;
}
else
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
::Sleep(10);
}