WaitForSingleObject, WaitForSingleObjectEx

WaitForSingleObject, WaitForSingleObjectEx
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。如果已经通过ReadFileExWriteFileEx函数调用对异步I/O传输进行了初始化,而且希望函数返回——以便由那些函数指定的I/O结束例程能正常执行,那么就把这个参数设为TRUE
注解

在Windows NT中,对象句柄必须指定了SYNCHRONIZE(同步)访问
如函数是由于对象发出信号而返回,那么这个函数可能还会得到一些额外的效果——具体由对象的类型决定。如下所示:
  □ 信号机:递增信号机计数
  □ 互斥体:将互斥体的所有权赋予发出调用的线程
  □ 自动重设事件:将事件发信状态设为FALSE

原文地址:https://www.cnblogs.com/zhangzhifeng/p/2151570.html