win32上多线程使用setTimeEvent可能引起死锁

来源:互联网 发布:广电网络机顶盒价格 编辑:程序博客网 时间:2024/06/08 13:22

今天在写UI框架的时候需要定时器主动刷新UI,用普通WM_TIMER事件不能满足需求,所以换成setTimerEvent函数,当在多线程时同时访问时就出现死锁。原因为在setTimerEvent的回调函数调用前系统会做同步操作(临界区),而刚好在回调函数中有自己的临界区操作,而刚好在另外一线程进入该临界区后调用setTimerEvent函数时就会出现死锁。

原创粉丝点击