MsgWaitForMultipleObjects

此頁沒有內(nèi)容條目
內(nèi)容

MsgWaitForMultipleObjects

VB聲明

Declare Function MsgWaitForMultipleObjects Lib "user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long

說明

等侯單個對象或一系列對象發(fā)出信號---標(biāo)志著規(guī)定的超時已經(jīng)過去,或特定類型的消息已抵達(dá)線程的輸入隊(duì)列。如返回條件已經(jīng)滿足,則立即返回

返回值

Long,如fWaitAll設(shè)為TRUE,則下述任何一個常數(shù)都標(biāo)志著成功:

WAIT_ABANDONED_0:所有對象都發(fā)出消息,而且其中一個或多個屬于互斥體(一但擁有它門的進(jìn)程中止,就會發(fā)出信號)。

WAIT_TIMEOUT:對象保持未發(fā)信號的狀態(tài),但規(guī)定的等待超時時間已經(jīng)超過

WAIT_OBJECT_0:所有的對象都發(fā)出信號

WAIT_TO_COMPLETION(僅適用于WaitForSingleObjectEx),由于一個I/O完成操作已準(zhǔn)備好執(zhí)行,從而造成了函數(shù)的返回。

返回WAIT_FALIED表示函數(shù)執(zhí)行失敗。會設(shè)置GetLastError

如fWaitAll設(shè)為FALSE,那返回結(jié)果與前面說的相似,只是可能還會返回相對于WAIT_ABANDONED_0或WAIT_OBJECT_0的一個正偏移量,指出哪個對象是被拋棄還是發(fā)出信號。

如果是由于dwWakeMask指定的,符合特殊標(biāo)準(zhǔn)的一條消息的到達(dá)而造成了函數(shù)的返回,則返回WAIT_OBJECT_0 + nCount

參數(shù)表

參數(shù)

類型及說明

nCount

Long,指定列表中的句柄數(shù)量

pHandles

Long,指定對象句柄組合中的第一個元素

fWaitAll

Long,如果為TRUE,表示除非對象同時發(fā)出信號,否則就等待下去。如果為FALSE,表示任何對象發(fā)出信號即可。

dwMilliseconds

Long,指定要等待的毫秒數(shù)。

dwWakeMask

Long,帶有QS_??前綴的一個或多個常數(shù),用于標(biāo)識特定的消息類型。

注解

如果函數(shù)是由于對象發(fā)出信號而返回,這個函數(shù)還會得到一些額外的效果:

信號機(jī):遞增信號機(jī)計(jì)數(shù)

互斥體:將互斥體的所有權(quán)限賦于發(fā)出調(diào)用的線程

自動重設(shè)事件:將事件發(fā)信狀態(tài)設(shè)為FALSE

自動重設(shè)可等待計(jì)時器:將計(jì)時器狀態(tài)設(shè)為FALSE

Top