在WaitForMultipleObjects窗口内等待可变数量的事件。

问题描述 投票:0回答:1

通常,WaitForMultipleObjects需要一个参数,告诉它这个方法需要等待多少个事件。

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

我的要求是等待的事件数量不是固定的。所以,在上面的函数中是否可以等待一个可变数量的事件,或者有什么其他的方法可以在windows中实现。

c++ events synchronization msdn waitformultipleobjects
1个回答
2
投票

你可以使用一个容器,比如 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); 
© www.soinside.com 2019 - 2024. All rights reserved.