{ HANDLE hEvent = CreateEvent(NULL, FALSE, //automatically resets TRUE, //flag for initial state NULL); WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的初始值是TRUE SetEvent(hEvent); //设置事件 WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的SetEvent WaitForSingleObject(hEvent, 2000); //此处会超时退出 CloseHandle(hEvent); } { HANDLE hEvent = CreateEvent(NULL, TRUE, //manual-reset TRUE, //flag for initial state NULL); WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的初始值是TRUE WaitForSingleObject(hEvent, -1); //此处正常退出,因为需要手动复位 ResetEvent(hEvent); //重置事件 WaitForSingleObject(hEvent, 2000); //此处会超时退出 SetEvent(hEvent); WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的SetEvent CloseHandle(hEvent); }