Как проверить состояние объекта события, фактически не меняя его? - PullRequest
6 голосов
/ 06 марта 2012

Проблема в том, что WaitForMultipleObjects (Ex) возвращает наименьший индекс из всех сигнализируемых объектов в массиве. Я хотел бы знать, какие именно объекты событий (созданные с помощью CreateEvent) находятся в сигнальном (или не сигнализированном) состоянии. Я думаю, что это невозможно, но решил спросить, чтобы убедиться, что я ничего не пропускаю =)

1 Ответ

8 голосов
/ 07 марта 2012

Для каждого объекта, состояние которого вы хотите проверить, вызовите WaitForSingleObject с таймаутом, равным нулю. Если он возвращает WAIT_OBJECT_0, тогда объект сигнализируется. В противном случае это не так.

Если у вас нет события автосброса, ожидание, пока объект не станет сигнальным, не изменит его состояние.

Имейте в виду, что состояние, которое вы обнаруживаете с помощью WaitForSingleObject, не обязательно совпадает с состоянием, которое было у объекта при возврате WaitForMultipleObjects. В то же время, другие объекты могли стать сигнальными, а другие объекты могли бы быть не сигнальными.

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