没有m_hWnd消息阻塞如何解决

社会栋梁 社会栋梁 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
修改一处代码
void CMyDialog::WaitForMsg(int value)
{
while(TRUE)
{
if(m_value > value)
break;
}
Sleep(0);
}


这里vlue是通过其他线程PostMessage过来更新的
当CMyDialog dlg;
dlg.DoModel;时正常

但是有其他地方调用dlg.WaitForMsg(int value),这是dlg没有DoModel;
这里就阻塞了


改成
        MSG msg;
while(PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ))
{
TranslateMessage( &msg );
DispatchMessage( &msg );


if(m_dValve>value)
break;
}


因为没有DoModel,所以PeekMessage不到消息,也是阻塞的


请教有什么快捷的办法解决此处问题?
...全文
评论 13
收藏 已收藏
分享
返回顶部
社会栋梁
VC/MFC 16,550 成员 421,606 内容