MFC对话框假死,求单线程解决方案,求助各位大神
有个程序,需要执行数千次循环,而且每次循环都要处理大量的读数据和筛选数据,因此比较消耗CPU和内存。
在程序运行过程中,一旦做其他的任何操作,如按键盘,或者鼠标单击或试图拖动对话框到任何地方,该程序就会假死,对话框除了标题栏外就白屏了。
而程序运行结束后,假死状态也就恢复正常了。
for(int i=0;i<CNCdata2.lnum;i++)
{
pDC->MoveTo((int)(rect.right/2-CNCdata1[i].X),(int)(rect.bottom/2-CNCdata1[i].Y));
int i1=i+1;
pDC->LineTo((int)(rect.right/2-CNCdata1[i1].X),(int)(rect.bottom/2-CNCdata1[i1].Y));
Sleep(30);
UpdateWindow();}
循环过程中添加PeekMessage()函数来处理消息:
MSG msg;
while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
也不能解决 循环就卡住不动了,页面也卡了,求助各位大神