1

我没有设置事件信号,但 WaitForSingleObject 总是返回。我在主线程中创建一个事件。

g_hHeartMonitorEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

然后在另一个线程中,我使用 WaitForSingleObject 等待事件发出信号。

`

while(true)
{
    DWORD dwResult = WaitForSingleObject(lpThis->g_hHeartMonitorEvent, 90 * 1000);
    if (WAIT_OBJECT_0 == dwResult)
    {
        LogWriteEx("WaitForSingleObject:dwResult = WAIT_OBJECT_0");
        continue;
    }
}

`

我发现 WaitForSingleObject 总是返回 WAIT_OBJECT_0。仅在一个地方调用 setevent。该机器有一个单核CPU。

4

1 回答 1

0

如果事件句柄由于某种未知原因而关闭,则会发生这种情况。

于 2021-03-03T11:57:52.400 回答