没有m_hWnd消息阻塞如何解决
修改一处代码
这里vlue是通过其他线程PostMessage过来更新的
当CMyDialog dlg;
dlg.DoModel;时正常
但是有其他地方调用dlg.WaitForMsg(int value),这是dlg没有DoModel;
这里就阻塞了
改成
因为没有DoModel,所以PeekMessage不到消息,也是阻塞的
请教有什么快捷的办法解决此处问题?
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不到消息,也是阻塞的
请教有什么快捷的办法解决此处问题?
...全文
相关推荐
vc中SendMessage自定义消息函数用法实例
主要介绍了vc中SendMessage自定义消息函数用法,以实例实行详细讲述了SendMessage的定义、原理与用法,具有一定的实用价值,需要的朋友可以参考下
windows的消息机制
描述的是Windows操作系统的消息机制,通过一些简单的Win32程序,来理解Windows消息。
C#中使用自定义消息
C#中使用自定义消息,实现窗体之间消息传递,带文档描述
两个exe之间发送消息
vs2008,使用c#,包含两个程序,一个为发送程序,另一个为接收程序
PreTranslateMessage中调用DoModal出错的解决
VS2010中,在PreTranslateMessage中调用DoModal出错出现当机的解决方案


