2009-03-08 2 views
0
  • Использование WaitForMultipleObjects:
    • делает возможным, чтобы ждать одного или всех из указанных объектов изменить к выделил государственного

Вопроса :Ждать определенного количества объектов?

  • Как можно ждать указанного суммы - например, 5, например

Использование

dwEvent = WaitForMultipleObjects(
       maxExpectedConnections, 
       ghEventsA, 
       TRUE,//but wait for a specified number instead 
       INFINITE); 

ответ

2

Используйте флаг waitall, чтобы указать, что вы хотите, чтобы ожидание возвращалось, когда сигнализируется какой-либо объект. Когда wait вернется, удалите сигнальный объект из массива объектов и подождите снова, пока у вас не будет N (например, 5 в вашем случае) объектов сигнализации.

+0

Привет, Neil, флаг «waitall» - это предопределенная директива? – Aaron

+0

Я имел ввиду pass FALSE в параметре bWaitAll – 2009-03-08 21:57:30

0

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

+0

Но ожидание на одном объекте блокирует thred. Как вы узнаете, будет ли сигнализироваться другой объект? – 2009-03-08 21:27:17

+0

Я хотел все еще ждать, но только до тех пор, пока не станет сигнал с помощью WaitForMultipleObjects (..., ..., FALSE, ...). Затем ждите оставшиеся объекты до тех пор, пока следующий сигнал не будет сигнализирован и так далее. – sth

+0

На самом деле то же самое, что вы предложили. – sth

 Смежные вопросы

  • Нет связанных вопросов^_^