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