今天在写UI框架的时候需要定时器主动刷新UI,用普通WM_TIMER事件不能满足需求,所以换成setTimerEvent函数,当在多线程时同时访问时就出现死锁。原因为在setTimerEvent的回调函数调用前系统会做同步操作(临界区),而刚好在回调函数中有自己的临界区操作,而刚好在另外一线程进入该临界区后调用setTimerEvent函数时就会出现死锁。
win32上多线程使用setTimeEvent可能引起死锁
最新推荐文章于 2023-07-25 06:54:15 发布
在使用UI框架时遇到多线程访问导致的死锁问题,通过将普通WM_TIMER事件替换为setTimerEvent函数,并在回调函数中避免临界区操作,成功解决了死锁现象。
5万+

被折叠的 条评论
为什么被折叠?



