Определение того, ожидает ли какой-либо поток события - PullRequest
2 голосов
/ 18 июля 2011

Допустим, у меня есть ручной дескриптор события h (созданный с помощью CreateEvent, manual).

В моем приложении несколько потоков, некоторые потоки могут ожидать этого события (WaitForSingleObject, WaitForMultipleObject).

В определенное время в моем приложении я хочу утверждать, что ни один поток не ожидает этот дескриптор h.

Есть ли функция Windows APIэто говорит мне, если какой-либо поток ожидает события h в тот момент времени?

1 Ответ

1 голос
/ 18 июля 2011

Я не верю, что Windows API предоставляет какой-либо общедоступный механизм для выдачи этой информации (независимо от того, ожидают ли потоки объект синхронизации).Это то, что типичное приложение не должно знать, и, вероятно, приведет к условиям гонки, если оно будет предоставлено.

Например, если приложение проверило, что никакие потоки не ожидали, а затем приняло решение, основанное на этом, это может быть легко ошибочным, потому что поток может в самом следующем цикле часов фактически начать ожидание событияпоэтому информация будет устаревшей и потенциально неверной сразу после проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...