函数的原型:
DWORD WaitForSingleObject( HANDLE hHandle, // handle to object DWORD dwMilliseconds // time-out interval );
hHandle:(事件)对象的句柄;
dwMilliseconds:时间间隔,毫秒级
WaitForSingleObject 函数当出现如下一种情况时才返回:
- 指定的对象在有信号状态
- 超过指定的时间间隔
返回值
如果函数执行成功,返回值指示引起函数返回的事件。返回值是下面一种:
Value | Meaning |
---|---|
WAIT_ABANDONED | 当hHandle为mutex时,如果拥有mutex的线程在结束时没有释放核心对象会引发此返回值。 |
WAIT_OBJECT_0 | 核心对象已被激活 |
WAIT_TIMEOUT | 等待超时
|
WaitForSingleObject函数用来检测hHandle事件的信号状态,在某一线程中调用该函数时,线程暂时挂起,如果在挂起的dwMilliseconds毫秒内,线程所等待的对象变为有信号状态,则该函数立即返回;如果超时时间已经到达dwMilliseconds毫秒,但hHandle所指向的对象还没有变成有信号状态,函数照样返回。
参数dwMilliseconds有两个具有特殊意义的值:0和INFINITE。若为0,则该函数立即返回;若为INFINITE,则线程一直被挂起,直到hHandle所指向的对象变为有信号状态时为止。