Posted on 2012-10-19 11:41
盛勝 閱讀(1193)
評論(0) 編輯 收藏 引用
例如:等待的是一個CEvent event;
event.SetEvent();
WaitForSingleObject
當指定的對象處于有信號狀態或者等待時間結束的狀態時,此函數返回。
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
參數:
hHandle:指定對象或事件的句柄;
dwMilliseconds: 等待時間,以毫妙為單位,當超過等待時間時,此函數將返回。如果該參數設置為0,則該函數立即返回,如果設置為INFINITE,則該函數直到有信號才返回。
返回值:
如果此函數成功,該函數的返回之標識了引起該函數返回的事件。返回值如下:
WAIT_ABANDONED(0x00000080L)
指定的對象是一個互斥對象,該對象沒有被擁有該對象的線程在線程結束前釋放。互斥對象的所有權被同意授予調用該函數的線程。互斥對象被設置成為無信號狀態。
WAIT_OBJECT_0 (0x00000000L)
指定的對象出有有信號狀態。
WAIT_TIMEOUT (0x00000102L)
超過等待時間,指定的對象處于無信號狀態
如果失敗,返回 WAIT_FAILED;
備注:
此函數檢查指定的對象或事件的狀態,如果該對象處于無信號狀態,則調用線程處于等待狀態,此時該線程不消耗CPU時間,
該函數可以等待如下對象:
Change notification
Console input
Event
Job
Memory resource notification
Mutex
Process
Semaphore
Thread
Waitable timer