码迷,mamicode.com
首页 > 编程语言 > 详细

多线程中遇到ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);怎么解决

时间:2015-02-02 14:05:18      阅读:546      评论:0      收藏:0      [点我收藏+]

标签:

XP下用VC开发的程序,在一个主线程调用3   个线程,线程之间要共享数据,结果总出现wincore.cpp   line   980   ASSERT(pMap-> LookupPermanent(hWndOrig)       ==       NULL)错误,该怎么解决?

[解决办法]
这个,你先保证一下线程访问共享数据的时候加锁。而且工作线程,不要调用界面线程的相关东西。
[解决办法]
先说一下可能的原因 
1。线程中使用了指向全局的DoModal对话框类,并在线程中试图销毁对话框对象,有可能导致,最好改成局部的。如果是派生类,在析构函数里设置m_hWnd=NULL; 

线程里最好不要直接使用指针,可以把这些类的hwnd句柄传递进去,或者使用postmessage来与UI交互 

多线程中遇到ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);怎么解决

标签:

原文地址:http://www.cnblogs.com/blogofwu/p/4267589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!