SendMessage会导致死锁的问题

来源:互联网 发布:java类加载器哪三种 编辑:程序博客网 时间:2024/05/03 10:06

windows的消息传递很多都用SendMessage,其实这个函数隐藏了1把大锁:主线程的锁


假如自己定义了1把锁,某个线程需要锁住资源,然后处理数据,然后sendmessage给主线程,显示界面,或者同步到主线程

同时,界面窗口有个按钮,会调用锁住的资源,这样就形成了 A、B锁互锁的问题。


解决方法:不用SendMessage模式【某些方法隐含使用了SendMessage也不行】

或者需要同步到主线程的消息,做个队列,队列本身有锁,在主线程的timer里面定时处理队列消息。

0 0
原创粉丝点击