VB声明 |
Declare Function WaitForSingleObject& Lib
"kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long)
Declare Function WaitForSingleObjectEx& Lib "kernel32" (ByVal hHandle As
Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) |
说明 |
等候指定的对象发出信号,或等候指定的超时时间过去(溢出)。如对象已经发出信号,则立即返回 |
返回值 |
Long,下述任何一个常数都标志着成功
WAIT_ABANDONED:对象是一个互斥体,拥有它的进程中止时发出信号
WAIT_TIMEOUT:对象保持未发信号的状态,但规定的等待超时时间已经超过
WAIT_OBJECT_0:对象发出信号
WAIT_IO_COMPLETION:(仅适用于WaitForSingleObjectEx)由于一个I/O完成操作已作好准备执行,所以造成了函数的返回
返回WAIT_FAILED则表示函数执行失败,会设置GetLastError |
参数表 |
参数 |
类型及说明 |
hHandle |
Long,指定要等候的句柄。可以是一个改变通知对象、一个控制台输入对象、一个事件、互斥体、信号机、一个进程或线程 |
dwMilliseconds |
Long,指定要等候的毫秒数。如设为零,表示立即返回。如指定常数INFINITE,则可根据实际情况无限等待下去 |
bAlertable |
Long,只适用于WaitForSingleObjectEx。如果已经通过ReadFileEx 或 WriteFileEx函数调用对异步I/O传输进行了初始化,而且希望函数返回——以便由那些函数指定的I/O结束例程能正常执行,那么就把这个参数设为TRUE |
注解 |
在Windows NT中,对象句柄必须指定了SYNCHRONIZE(同步)访问
如函数是由于对象发出信号而返回,那么这个函数可能还会得到一些额外的效果——具体由对象的类型决定。如下所示:
□ 信号机:递增信号机计数
□ 互斥体:将互斥体的所有权赋予发出调用的线程
□ 自动重设事件:将事件发信状态设为FALSE |