Ждать переменное количество событий внутри WaitForMultipleObjects windows - PullRequest
0 голосов
/ 17 июня 2020

Обычно WaitForMultipleObjects принимает аргумент, который сообщает ему, сколько событий этот метод должен подождать.

DWORD WaitForMultipleObjects(
              DWORD        Count,
              const HANDLE *lpHandles,
              BOOL         bWaitAll,
              DWORD        dwMilliseconds
             );

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

1 Ответ

2 голосов
/ 17 июня 2020

Вы можете использовать такой контейнер, как std :: vector :

#include <vector>
//...
int numHandles = 10;
std::vector<HANDLE> vHandles(numHandles);
//...
vHandles[0] = CreateThread(arguments);
vHandles[1] = CreateThread(arguments);
//... etc. 
WaitForMultipleObjects(vHandles.size(), vHandles.data(), TRUE, INFINITE); 
...