返回信息流场景:
线程A,B。
A加载dll,dll创建窗口W。
。。。
B释放dll,dll销毁窗口W,因为destroyWindow不能跨线程,B向窗口W发送消息,A收到消息后调用DestroyWindow,然后僵住了。
后来发现机器里装了趋势科技,关掉就好了,TMAS_OEMon.exe,就是这个。
为什么会这样?
这是一条镜像帖。来源:北邮人论坛 / cpp / #27982同步于 2009/9/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于销毁dll中对话框的问题
Kumbayaco
2009/9/2镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 FadeToBlack 的大作中提到: 】
: 消息发过去了吗?估计是被趋势挡了吧
消息已经收到了,自定义的或者WM_DESTROY都能收到,但是在收到消息后调用DestroyWindow后死掉。
搞清楚这个问题,调试一下DestroyXXX吧
【 在 Kumbayaco (找点信仰) 的大作中提到: 】
: 消息已经收到了,自定义的或者WM_DESTROY都能收到,但是在收到消息后调用DestroyWindow后死掉。
【 在 flyingkisser 的大作中提到: 】
: 搞清楚这个问题,调试一下DestroyXXX吧
原来是FreeLibrary线程的优先级问题。趋势科技会提高这个线程的优先级,导致死锁。