Я не устанавливаю событие сигнализируемым, но 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. Сетевент только называется в одном месте. Машина имеет одноядерный процессор.