Monitor.PulseAll(Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Powiadamia wszystkie oczekujące wątki zmiany stanu obiektu.
public:
static void PulseAll(System::Object ^ obj);
public static void PulseAll(object obj);
static member PulseAll : obj -> unit
Public Shared Sub PulseAll (obj As Object)
Parametry
- obj
- Object
Obiekt, który wysyła impuls.
Wyjątki
Parametr obj jest null.
Wątek wywołujący nie jest właścicielem blokady dla określonego obiektu.
Uwagi
Wątek, który obecnie jest właścicielem blokady określonego obiektu, wywołuje tę metodę, aby zasygnalizować wszystkie wątki oczekujące na uzyskanie blokady obiektu. Po wysłaniu sygnału wątki oczekujące są przenoszone do gotowej kolejki. Gdy wątek, który wywołał PulseAll , zwalnia blokadę, następny wątek w gotowej kolejce uzyskuje blokadę.
Należy pamiętać, że zsynchronizowany obiekt zawiera kilka odwołań, w tym odwołanie do wątku, który obecnie przechowuje blokadę, odwołanie do kolejki gotowej, która zawiera wątki, które są gotowe do uzyskania blokady, oraz odwołanie do kolejki oczekiwania, która zawiera wątki oczekujące na powiadomienie o zmianie stanu obiektu.
PulseMetody , PulseAlli Wait muszą być wywoływane z zsynchronizowanego bloku kodu.
Uwagi dotyczące Pulse metody wyjaśniają, co się stanie, jeśli Pulse jest wywoływana, gdy nie ma oczekujących wątków.
Aby zasygnalizować pojedynczy wątek, użyj Pulse metody .