Condividi tramite


CMultiLock::Lock

Chiamare la funzione per accedere a una o più delle risorse controllate dagli oggetti di sincronizzazione forniti al costruttore CMultiLock .

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

Parametri

  • dwTimeOut
    Specifica il tempo di attesa l'oggetto di sincronizzazione siano disponibili (segnalato).Se INFINITE, Lock attesa finché non viene segnalato l'oggetto prima di restituire.

  • bWaitForAll
    Specifica se tutti gli oggetti attesi su devono essere segnalati contemporaneamente prima di restituire.Se FALSE, Lock otterranno a qualsiasi di oggetti attesi viene segnalato.

  • dwWakeMask
    Specifica le altre condizioni consentite per interrompere l'attesa.Per un elenco completo delle opzioni disponibili per il parametro, vedere MsgWaitForMultipleObjects in Windows SDK.

Valore restituito

Se Lock non riesce, restituisce – 1.Se l'operazione riesce, restituisce uno dei seguenti valori:

  • Tra WAIT_OBJECT_0 e WAIT_OBJECT_0 + (numero di oggetti – 1)

    Se bWaitForAll è TRUE, tutti gli oggetti vengono segnalati (disponibile.Se bWaitForAll è FALSE, il valore restituito da WAIT_OBJECT_0 è l'indice della matrice di oggetti dell'oggetto che viene segnalato (disponibile.

  • WAIT_OBJECT_0 + (numero di oggetti)

    Un evento specificato in dwWakeMask è disponibile la coda di input del thread.

  • Tra WAIT_ABANDONED_0 e WAIT_ABANDONED_0 + (numero di oggetti – 1)

    Se bWaitForAll è TRUE, tutti gli oggetti vengono segnalati e almeno uno degli oggetti è un oggetto abbandonato del mutex.Se bWaitForAll è FALSE, il valore restituito da WAIT_ABANDONED_0 è l'indice della matrice di oggetti dell'oggetto abbandonato del mutex che soddisfano l'attesa.

  • WAIT_TIMEOUT

    L'intervallo di tempo specificato in dwTimeOut è scaduto senza risolvere di attesa.

Note

Se bWaitForAll è TRUE, Lock restituito correttamente appena tutti gli oggetti di sincronizzazione diventano hanno eseguito contemporaneamente.Se bWaitForAll è FALSE, Lock restituirà non solo uno o più oggetti di sincronizzazione vengono segnalati.

Se Lock non può restituire immediatamente, attenderà non al numero di millisecondi specificato nel parametro del dwTimeOut prima di restituire.Se il dwTimeOut è INFINITE, Lock non restituirà fino a ottenere l'accesso a un oggetto o una condizione specificata in dwWakeMask sia completata.In caso contrario, se Lock può acquisire un oggetto di sincronizzazione, restituito correttamente; in caso contrario, restituirà un errore.

Requisiti

Header: afxmt.h

Vedere anche

Riferimenti

Classe di CMultiLock

Grafico della gerarchia