Udostępnij za pośrednictwem


CMultiLock::Lock

Wywołanie tej funkcji, aby uzyskać dostęp do zasobów kontrolowanych przez obiekty synchronizacji dostarczonych CMultiLock konstruktora.

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

Parametry

  • dwTimeOut
    Określa czas oczekiwania na obiekt synchronizacji mają być dostępne (zasygnalizowany).Jeśli INFINITE, Lock będzie czekał przed zwróceniem sygnalizowane jest obiekt.

  • bWaitForAll
    Określa, czy wszystkie obiekty 15–30 zasygnalizowanie musi jednocześnie przed zwróceniem.Jeśli FALSE, Lock zwróci, gdy jeden z obiektów obsługiwane jest sygnalizowany.

  • dwWakeMask
    Określa innych warunków, które mogą przerwać oczekiwanie.Aby uzyskać pełną listę dostępnych opcji dla tego parametru, zobacz MsgWaitForMultipleObjects w Windows SDK.

Wartość zwracana

Jeśli Lock się nie powiedzie, zwraca – 1.Jeśli się powiedzie, zwraca jedną z następujących wartości:

  • Między WAIT_OBJECT_0 i WAIT_OBJECT_0 + (liczba obiektów — 1)

    Jeśli bWaitForAll jest TRUE, wszystkie obiekty są sygnalizowane (dostępne).Jeśli bWaitForAll jest FALSE, wartość zwracana – WAIT_OBJECT_0 jest indeksem tablicy obiektów obiekt, który jest sygnalizowany (dostępne).

  • WAIT_OBJECT_0 + (liczba obiektów)

    Zdarzenia określonego w dwWakeMask jest dostępny w wątku kolejki wejściowej.

  • Między WAIT_ABANDONED_0 i WAIT_ABANDONED_0 + (liczba obiektów — 1)

    Jeśli bWaitForAll jest TRUE, wszystkie obiekty są sygnalizowane i co najmniej jeden z obiektów jest obiekt mutex opuszczonych.Jeśli bWaitForAll jest FALSE, wartość zwracana – WAIT_ABANDONED_0 jest indeksem tablicy obiektów obiektu mutex opuszczonych spełnione oczekiwania.

  • WAIT_TIMEOUT

    Interwał limitu czasu określony w dwTimeOut minął bez oczekiwania uprawianych następczo.

Uwagi

Jeśli bWaitForAll jest TRUE, Lock zwróci pomyślnie tak szybko, jak obiekty synchronizacji zasygnalizowanie jednocześnie.Jeśli bWaitForAll jest FALSE, Lock zwróci tak szybko, jak zasygnalizowany jeden lub więcej obiektów synchronizacji.

Jeśli Lock nie jest w stanie zwrócić się natychmiast, będzie czekać na nie więcej niż liczbę milisekund określoną w dwTimeOut parametr przed zwróceniem.Jeśli dwTimeOut jest INFINITE, Lock nie zwróci aż doświadczenia jest dostęp do obiektu lub warunek określony w dwWakeMask została osiągnięta.Inaczej, jeśli Lock była możliwość nabycia obiektu synchronizacji, zwróci pomyślnie; Jeśli nie zwróci błąd.

Wymagania

Nagłówek: afxmt.h

Zobacz też

Informacje

Klasa CMultiLock

Wykres hierarchii