Multiple-object Wait Functions函數(shù)一共有4個(gè):
DWORD WaitForMultipleObjects(
DWORD nCount, // lpHandles中對(duì)象句柄的個(gè)數(shù)
const HANDLE *lpHandles, // 一組對(duì)象句柄
BOOL bWaitAll, //
DWORD dwMilliseconds // 定時(shí)時(shí)間間隔打掘,單位為milliseconds(毫秒)
);
DWORD WaitForMultipleObjectsEx(
DWORD nCount, // lpHandles中對(duì)象句柄的個(gè)數(shù)
const HANDLE *lpHandles, // 一組對(duì)象句柄
BOOL bWaitAll,
DWORD dwMilliseconds, // 定時(shí)時(shí)間間隔届氢,單位為milliseconds(毫秒)
BOOL bAlertable
);
// Waits until one or all of the specified objects are in the signaled state or the time-out interval elapses.
// The objects can include input event objects, which you specify using the dwWakeMask parameter.
DWORD MsgWaitForMultipleObjects(
DWORD nCount, // lpHandles中對(duì)象句柄的個(gè)數(shù)
const HANDLE *pHandles, // 一組對(duì)象句柄
BOOL fWaitAll,
DWORD dwMilliseconds, // 定時(shí)時(shí)間間隔乖菱,單位為milliseconds(毫秒)
DWORD dwWakeMask
);
DWORD MsgWaitForMultipleObjectsEx(
DWORD nCount, // lpHandles中對(duì)象句柄的個(gè)數(shù)
const HANDLE *pHandles, // 一組對(duì)象句柄
DWORD dwMilliseconds, // 定時(shí)時(shí)間間隔助币,單位為milliseconds(毫秒)
DWORD dwWakeMask,
DWORD dwFlags
);
對(duì)象句柄可以指定一系列的對(duì)象静陈,如Event燕雁、Job、Memory resource notification拐格、Mutex僧免、Process捏浊、Semaphore、Thread呛伴、Waitable timer等勃痴。當(dāng)同步對(duì)象的狀態(tài)變?yōu)閟ignaled或者設(shè)置的等待時(shí)間到了热康,函數(shù)就會(huì)返回。
定時(shí)時(shí)間間隔,如果dwMilliseconds為0姐军,對(duì)象沒有被觸發(fā)信號(hào),函數(shù)不會(huì)進(jìn)入一個(gè)等待狀態(tài)奕锌,它總是立即返回著觉。如果dwMilliseconds為INFINITE惊暴,對(duì)象被觸發(fā)信號(hào)后,函數(shù)才會(huì)返回辽话。
bWaitAll:如果此參數(shù)為TRUE肄鸽,則在lpHandles數(shù)組中的所有對(duì)象的狀態(tài)發(fā)出信號(hào)時(shí),該函數(shù)返回油啤。如果為FALSE典徘,則當(dāng)任何一個(gè)對(duì)象的狀態(tài)設(shè)置為信號(hào)時(shí),該函數(shù)返回益咬。在后一種情況下逮诲,返回值表示其狀態(tài)導(dǎo)致函數(shù)返回的對(duì)象。
bAlertable:如果此參數(shù)為true幽告,且線程處于等待狀態(tài)梅鹦,則當(dāng)系統(tǒng)存在排隊(duì)的I/O例程或APC時(shí),該線程運(yùn)行該I/O例程或APC并返回冗锁。否則帘瞭,函數(shù)將不返回。
dwWakeMask:輸入事件對(duì)象句柄將添加到對(duì)象句柄數(shù)組中的輸入類型
Demo:
svn://gitee.com/sudaidai/Knowledge_List_of_C
文件夾路徑:WindowsAPI/Wait Functions/Multiple-object
如還需了解細(xì)節(jié)前往:MsgWaitForMultipleObjectsE