通常,WaitForMultipleObjects需要一个参数,告诉它这个方法需要等待多少个事件。
DWORD WaitForMultipleObjects(
DWORD Count,
const HANDLE *lpHandles,
BOOL bWaitAll,
DWORD dwMilliseconds
);
我的要求是等待的事件数量不是固定的。所以,在上面的函数中是否可以等待一个可变数量的事件,或者有什么其他的方法可以在windows中实现。
你可以使用一个容器,比如 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);