[Win32 Thread] WaitForMultipleObjects

WaitForMultipleObjects()

Win32 函式中的WaitForMultipleObjects() 允許你在同一時間等待一個上的物件。你必須將一個由 handles 組成的陣列交給此函式,並指定要等其中一個物件或是全部的物件。下面就是這個函式的原型:

DWORD  WaitForMultipleObjects(
DWORD  nCount,
CONST  HANDLE *lpHandles,
BOOL  bWaitAll,
DWORD dwMilliseconds
)

參數

nCount
表示 lpHandles  所指之 handles  陣列的元素個數。最大容量是 MAXIMUM_WAIT_OBJECTS 。

lpHandles
指向一個由物件 handles  所組成的陣列 。這些handles  不需要是相同的型態。                

DWaitAll
如果此為 TRUE ,表示所有的 handles  都必須激發 ,此函式才得以回返。否則此函式將在任何一個handIle 激發時就回返。  

dwMilliseconds
當此時間長度終了 ,即使沒有任何 handles  激發,此函式地會回返。此值可為 0  ,以便測試。           亦可指定為INFINITE ,表示無窮等待。   

回返值

WaitForMultipleObjects()  的回返值有些複雜。
1.如果因時間終了而回返,回返值是 WAIT_TIMEOUT ,類似WaitForSingleObject()。
2.如果 bWaitAll 是 TRUE ,那麼回返值將是 WAIT_OBJECT_O 。
3.如果 bWaitAll 是 FALSE ,那麼將回返值減去 WAIT_OBJECT_O  ,就表 示陣列中的哪一個 handle  被激發了 。
4.如果你等待的物件中有任何 mutexes ,那麼回返值可能從WAIT _ABANDONED_O  到 WATT  _ABANDONED  _O+nCount-l  。
5.如果函式失敗 ,它會傳回 WAIT_FAILED 。這時候你可以使用 GetLastError()  找出失敗的原因 。

Comments

Popular posts from this blog

[Linux] UVC Camera

UPnP Device Implementations

[UPnP] UPnP Implementers Corporation & UPnP Forum