MsgWaitForMultipleObjects

MsgWaitForMultipleObjects

VB声明

Declare Function MsgWaitForMultipleObjects Lib "user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long

说明

等侯单个对象或一系列对象发出信号---标志着规定的超时已经过去,或特定类型的消息已抵达线程的输入队列。如返回条件已经满足,则立即返回

返回值

Long,如fWaitAll设为TRUE,则下述任何一个常数都标志着成功:

WAIT_ABANDONED_0:所有对象都发出消息,而且其中一个或多个属于互斥体(一但拥有它门的进程中止,就会发出信号)。

WAIT_TIMEOUT:对象保持未发信号的状态,但规定的等待超时时间已经超过

WAIT_OBJECT_0:所有的对象都发出信号

WAIT_TO_COMPLETION(仅适用于WaitForSingleObjectEx),由于一个I/O完成操作已准备好执行,从而造成了函数的返回。

返回WAIT_FALIED表示函数执行失败。会设置GetLastError

如fWaitAll设为FALSE,那返回结果与前面说的相似,只是可能还会返回相对于WAIT_ABANDONED_0或WAIT_OBJECT_0的一个正偏移量,指出哪个对象是被抛弃还是发出信号。

如果是由于dwWakeMask指定的,符合特殊标准的一条消息的到达而造成了函数的返回,则返回WAIT_OBJECT_0 + nCount

参数表

参数

类型及说明

nCount

Long,指定列表中的句柄数量

pHandles

Long,指定对象句柄组合中的第一个元素

fWaitAll

Long,如果为TRUE,表示除非对象同时发出信号,否则就等待下去。如果为FALSE,表示任何对象发出信号即可。

dwMilliseconds

Long,指定要等待的毫秒数。

dwWakeMask

Long,带有QS_??前缀的一个或多个常数,用于标识特定的消息类型。

注解

如果函数是由于对象发出信号而返回,这个函数还会得到一些额外的效果:

信号机:递增信号机计数

互斥体:将互斥体的所有权限赋于发出调用的线程

自动重设事件:将事件发信状态设为FALSE

自动重设可等待计时器:将计时器状态设为FALSE

Top