WaitForMultipleObjects函数的定义如下,摘自微软的文档:
DWORD WINAPI WaitForMultipleObjects(
_In_ DWORD nCount,
_In_ const HANDLE *lpHandles,
_In_ BOOL bWaitAll,
_In_ DWORD dwMilliseconds
);
第一个参数nCount是第二个参数lpHandles数组传入的句柄数。
第二个参数lpHandles是存放句柄的数组。
第三个参数bWaitAll是bool类型的,如果设置为true,那这个函数会等到所有传入句柄所指的对象都发出信号;如果设置为false,那这个函数会等到所有传入句柄的其中一个发出信号,就往下执行。同时函数的返回值会具体指出是哪一个对象发出的信号,若同时有多个对象发出信号,那返回的是在lpHandles里索引最小的一个。
第四个参数dwMilliseconds设定timeout时间,在设置的时间达到之后,进程就会继续执行。若设置为0,则进程根本不会进入等待,直接后续执行,若设置为INFINITE,则进程会等到相应的句柄所指的对象发出信号之后继续执行。所以一般设置为INFINITE。
关于函数返回值,在这里放一张从文档里截的图,暂时不想搞懂,等以后再看。