共用方式為


CMultiLock::Lock

呼叫此函式來同步處理物件的一或多個控制項資源的存取權給 CMultiLock 建構函式。

DWORD Lock( 
   DWORD dwTimeOut = INFINITE, 
   BOOL bWaitForAll = TRUE, 
   DWORD dwWakeMask = 0  
);

參數

  • dwTimeOut
    指定時間等待同步物件可用 (表示)。 如果 INFINITE, Lock 等待,直到物件在傳回之前先收到信號。

  • bWaitForAll
    指定是否要等候的所有物件都必須同時變成發出信號後再傳回。 如果 Lock ,會傳回,表示等待的任何一個物件收到信號。

  • dwWakeMask
    指定允許放棄等候的其他條件。 如需這個參數的可用選項的完整清單,請參閱 Windows SDKMsgWaitForMultipleObjects

傳回值

如果 Lock 失敗,則會傳回– 1。 如果成功的話,會傳回下列其中一個值:

  • WAIT_OBJECT_0WAIT_OBJECT_0 + (物件的數值– 1)

    如果 bWaitForAll 是 ,所有物件收到信號 (適用於)。 如果 bWaitForAll 是 ,傳回值 WAIT_OBJECT_0 –是陣列的索引來表示物件的物件 (可)。

  • WAIT_OBJECT_0 + (物件數目)

    在 dwWakeMask 指定的事件可在執行緒上輸入佇列。

  • WAIT_ABANDONED_0WAIT_ABANDONED_0 + (物件的數值– 1)

    如果 bWaitForAll 是 ,所有物件發出信號,,且其中至少有一個物件為已放棄的 Mutex 物件。 如果 bWaitForAll 是 ,傳回值 WAIT_ABANDONED_0 –是陣列的索引滿足等候放棄的 Mutex 物件的物件。

  • WAIT_TIMEOUT

    dwTimeOut 指定的逾時時間間隔到期,而不用等候成功。

備註

如果 bWaitForAll 是 , Lock 會成功傳回,則所有的同步處理物件收到一次信號。 如果 bWaitForAll 是 , Lock 都會傳回,將一或多個同步物件收到信號。

如果 Lock 無法立即傳回,它會在 dwTimeOut 參數所指定的毫秒數會等候沒有詳細後再傳回。 如果 dwTimeOutINFINITE, Lock 不會傳回,直到物件的使用中取得或 dwWakeMask 在指定的條件為。 否則,如果 Lock ,可以取得同步物件,它會成功傳回,否則,它會傳回失敗。

需求

Header: afxmt.h

請參閱

參考

CMultiLock 類別

階層架構圖表