多线程学习笔记 三

 Win32 函数中的 WaitForMultipleObjects() 允许你在同一时间等待一个以上的对象。你必须将一个由 handles 组成的数组交给此函数,并指定要等待其中一个对象或是全部的对象。
 函数原型:
   DWORD WaitForMultipleObjects (
                                  DWORD nCount,
                                  CONST HANDLE *lpHandles,
                                  BOOL bWaitAll,
                                  DWORD dwMilliseconds );
 参数说明:
   nCount  表示 lpHandles 所指之 handles 数组的元素个数,最大容量是MAXIMUM_WAIT_OBJECTS.
   lpHandles  指向一个由对象 handles 所组成的数组这些 handles 不需要为相同的类型。
   bWaitAll  如果此为 TURE 表示所有的handles都必须激发,此函数才得以返回,否则此函数将在任 何一个 handle 激发时就返回。
   dwMilliseconds  当该时间长度终了时,即使没有任何handles激发,此函数也会返回。此值可为0,以便测试。亦可指定为INFINITE 表示无穷等待。

 返回值:
1、如果时间终了而返回,则返回值是WAIT_TIMEOUT,类似 WaitForSingleObject().
2、如果 bWaitAll 是 TURE 那么返回值是WAIT_OBJECT_0.
3、如果 bWaitAll 是 FALSE那么将返回值减去 WAIT_OBJECT_0,就表示数组中的哪一个handle被激发了。
4、如果你等待的对象中有任何 mutexes,那么返回值可能从WAIT_ABANDONED_0 到WAIT_ABANDONED_0 + nCount -1。、
5、如果函数失败,它会传回 WAIT_FAILED .这时候你可以使用GetLastError()找出失败的原因。
注意:handles的数组中的元素个数有上限,绝对不能够超过MAXIMUM_WAIT_OBJECTS.在 WindowsNT中 其值为 64.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值