您的位置:首页 > 其它

主线程要执行一个复杂的操作还要响应界面操作

2011-01-04 16:45 225 查看
例如: 主线程中一个对话框的按钮事件如下:

for(int i=0; i<1000; i++)
{
Sleep(10);

if(i%100)
{
MSG msg;
while(::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if(!theApp.PumpMessage())
{
::PostQuitMessage(0);
return;
}
}
}
}

如果将

if(i%100)
{
MSG msg;
while(::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if(!theApp.PumpMessage())
{
::PostQuitMessage(0);
return;
}
}
}

去掉后,只有执行完该函数后 主线程的其他消息才能响应 导致拖动界面操作无法执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐