WaitForSingleObject是一种Windows API函数,当等待仍在挂起状态时,句柄被关闭,那么函数行为是未定义的。该句柄必须具有 SYNCHRONIZE 访问权限。
WaitForSingleObject函数用来检测hHandle事件的信号状态,里面有两个参数,一个是信号句柄,一个是等待的时间,
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
dwErrorRet = WaitForSingleObject(overlapped.hEvent, milliseconds);
if(WAIT_OBJECT_0 == dwErrorRet)//WAIT_OBJECT_0 0x00000000 :指定的对象出有有信号状态
{
GetOverlappedResult(m_hWriteEvent, &overlapped, &dwNumberofBytesWritten, FALSE);
}
else
{
return -1 ;
}
如果在一定时间内,没有信号,则函数返回,如果有信号,函数会立即返回。
WAIT_OBJECT_0 0x00000000 :指定的对象出有有信号状态
WAIT_TIMEOUT 0x00000102:等待超时