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

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

你可能感兴趣的:(wince,多线程,timer,ui,框架)