例如:等待的是一個(gè)CEvent event;
event.SetEvent();
WaitForSingleObject
當(dāng)指定的對象處于有信號狀態(tài)或者等待時(shí)間結(jié)束的狀態(tài)時(shí),此函數(shù)返回。
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
參數(shù):
hHandle:指定對象或事件的句柄;
dwMilliseconds: 等待時(shí)間,以毫妙為單位,當(dāng)超過等待時(shí)間時(shí),此函數(shù)將返回。如果該參數(shù)設(shè)置為0,則該函數(shù)立即返回,如果設(shè)置為INFINITE,則該函數(shù)直到有信號才返回。
返回值:
如果此函數(shù)成功,該函數(shù)的返回之標(biāo)識了引起該函數(shù)返回的事件。返回值如下:
WAIT_ABANDONED(0x00000080L)
指定的對象是一個(gè)互斥對象,該對象沒有被擁有該對象的線程在線程結(jié)束前釋放?;コ鈱ο蟮乃袡?quán)被同意授予調(diào)用該函數(shù)的線程?;コ鈱ο蟊辉O(shè)置成為無信號狀態(tài)。
WAIT_OBJECT_0 (0x00000000L)
指定的對象出有有信號狀態(tài)。
WAIT_TIMEOUT (0x00000102L)
超過等待時(shí)間,指定的對象處于無信號狀態(tài)
如果失敗,返回 WAIT_FAILED;
備注:
此函數(shù)檢查指定的對象或事件的狀態(tài),如果該對象處于無信號狀態(tài),則調(diào)用線程處于等待狀態(tài),此時(shí)該線程不消耗CPU時(shí)間,
該函數(shù)可以等待如下對象:
Change notification
Console input
Event
Job
Memory resource notification
Mutex
Process
Semaphore
Thread
Waitable timer
event.SetEvent();
WaitForSingleObject
當(dāng)指定的對象處于有信號狀態(tài)或者等待時(shí)間結(jié)束的狀態(tài)時(shí),此函數(shù)返回。
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
參數(shù):
hHandle:指定對象或事件的句柄;
dwMilliseconds: 等待時(shí)間,以毫妙為單位,當(dāng)超過等待時(shí)間時(shí),此函數(shù)將返回。如果該參數(shù)設(shè)置為0,則該函數(shù)立即返回,如果設(shè)置為INFINITE,則該函數(shù)直到有信號才返回。
返回值:
如果此函數(shù)成功,該函數(shù)的返回之標(biāo)識了引起該函數(shù)返回的事件。返回值如下:
WAIT_ABANDONED(0x00000080L)
指定的對象是一個(gè)互斥對象,該對象沒有被擁有該對象的線程在線程結(jié)束前釋放?;コ鈱ο蟮乃袡?quán)被同意授予調(diào)用該函數(shù)的線程?;コ鈱ο蟊辉O(shè)置成為無信號狀態(tài)。
WAIT_OBJECT_0 (0x00000000L)
指定的對象出有有信號狀態(tài)。
WAIT_TIMEOUT (0x00000102L)
超過等待時(shí)間,指定的對象處于無信號狀態(tài)
如果失敗,返回 WAIT_FAILED;
備注:
此函數(shù)檢查指定的對象或事件的狀態(tài),如果該對象處于無信號狀態(tài),則調(diào)用線程處于等待狀態(tài),此時(shí)該線程不消耗CPU時(shí)間,
該函數(shù)可以等待如下對象:
Change notification
Console input
Event
Job
Memory resource notification
Mutex
Process
Semaphore
Thread
Waitable timer