线程 1
...
SetEvent(_event)
;
EnterCriticalSection(crit);
ResetEvent(_event);
LeaveCriticalSection(crit);
线程 2:
EnterCriticalSection(crit);
WaitForSingleObject(_event, forever);
LeaveCriticalSection(crit);
当 Thread 1 设置 Event 时,Thread 2 还在等待,永远等待。因此,Thead 1 尝试获取锁,但未能死锁。我检查了 SetEvent 的返回值,这没问题。
删除线程1的EnterCriticalSection和LeaveCriticalSection,多次调用SetEvent后发现事件仍未设置