CMultiLock::Lock
Rufen Sie diese Funktion, um zu einem oder mehreren der Ressourcen zu erhalten, die durch die Synchronisierungsobjekte gesteuert werden, die dem CMultiLock -Konstruktor angegeben werden.
DWORD Lock(
DWORD dwTimeOut = INFINITE,
BOOL bWaitForAll = TRUE,
DWORD dwWakeMask = 0
);
Parameter
dwTimeOut
Gibt die Zeitdauer an, die auf das Synchronisierungsobjekt zu warten, bis zur Verfügung steht (signalisiert).Wenn INFINITE, Lock wartet, bis das Objekt signalisiert wird, bevor zurückgibt.bWaitForAll
Gibt an, ob alle Objekte müssen gleichzeitig an warteten signalisiert werden, bevor sie zurück.Wenn FALSE, Lock zurückgibt, wenn eines der Objekte, die an verwaltet werden, signalisiert wird.dwWakeMask
Gibt anderen Bedingungen, die berechtigt sind, um den Wartevorgang abbrechen.Eine vollständige Liste der verfügbaren Optionen für diesen Parameter, finden Sie unter MsgWaitForMultipleObjects in Windows SDK.
Rückgabewert
Wenn Lock fehlschlägt, gibt es - 1. zurück.Wenn erfolgreich, gibt es einen der folgenden Werte zurück:
Zwischen WAIT_OBJECT_0 und WAIT_OBJECT_0 + (Zahl Objekte 1).
Wenn bWaitForAllTRUE ist, werden alle Objekte signalisiert (verfügbar).Wenn bWaitForAllFALSE, ist der Rückgabewert - WAIT_OBJECT_0 ist der Index im Array des Objekts, das signalisiert wird (verfügbar).
WAIT_OBJECT_0 + Zahl (- Objekte)
Ein Ereignis, das in dwWakeMask angegeben wird, ist in der Eingabewarteschlange des Threads verfügbar.
Zwischen WAIT_ABANDONED_0 und WAIT_ABANDONED_0 + (Zahl Objekte 1).
Wenn bWaitForAllTRUE ist, werden alle Objekte signalisiert, und ist mindestens eines der Objekte ein abgebrochener Mutex-Objekt.Wenn bWaitForAllFALSE, ist der Rückgabewert - WAIT_ABANDONED_0 ist der Index im Array des abgebrochenen Mutexobjekts, das den Wartevorgang zufriedenstellte.
WAIT_TIMEOUT
Das Timeoutintervall angegeben im dwTimeOut abgelaufen ohne den folgenden Wartevorgang.
Hinweise
Wenn bWaitForAllTRUE ist, gibt Lock erfolgreich zurück, sobald alle Synchronisierungsobjekte gleichzeitig signalisiert werden.Wenn bWaitForAllFALSE ist, gibt Lock zurück, sobald eine oder mehrere der Synchronisierungsobjekte signalisiert wird.
Wenn Lock nicht in der Lage ist, sofort zurückzukehren, wartet er nicht mehr als die Anzahl der Millisekunden, die im dwTimeOut -Parameter angegeben werden, bevor es zurückgibt.Wenn dwTimeOutINFINITE ist, gibt Lock nicht zurückgegeben, wenn Zugriff auf ein Objekt abgerufen wurde, oder eine Bedingung, die in dwWakeMask angegeben wurde, erfüllt wurde.Wenn Lock in der Lage ist, ein Synchronisierungsobjekt abzurufen, gibt sie erfolgreich zurück; Wenn nicht, wird Fehler zurück.
Anforderungen
Header: afxmt.h