当线程需要处理大量数据,窗口就不能操作,出现假死,可以添加如下代码
int k = 55;
for(int i=0;i<1000;i++)
{
for(int j=0;j<1000000;j++)
{
k = k*j/3;
}
MSG msg;
bool lbExit = false;
bool lbGot = true;
while(lbGot)
{
if((lbGot = PeekMessage(&msg,NULL,0,0,PM_REMOVE))!=false)
{
if(TranslateMessage(&msg)==0)
DispatchMessage(&msg);
if(msg.message == WM_SYSCOMMAND && msg.wParam == SC_CLOSE)
{
lbExit = true;
break;
}
}
}
if(lbExit != false)
break;
}
MessageBox(L"xxx");
这样窗口可以拖动,但是MessageBox(L"xxx");是在循环结束后才弹出。