Есть ли способ узнать все семафоры в настоящее время с сигналами в окнах?Обнаружение всех семафоров в настоящий момент
Один подход заключается в вызове WaitForMultipleObjects (bWaitAll = FALSE, dwMilliseconds = 0)
неоднократно, каждый раз снимая один (сигнал) HANDLE, пока мы не получим WAIT_TIMEOUT,
, но это громоздко и медленно.
Есть ли лучший способ?
Это очень фундаментально, что делать это * никогда * правильно. Все, что вы знаете, что это * было сообщено, вы ничего не знаете о текущем состоянии. Winapi не дает вам простой способ сделать не то. –
Мне не нужно точное * текущее состояние, но вам нужно быстро обработать пакет (выпущенных) ресурсов, как только сможете. Ваша логика может быть слегка растянута, чтобы утверждать, что WaitForMultipleObjects (bWaitAll = TRUE) на семафорах также не является правильным. –