通常,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);