Monitor.PulseAll(Object) Metoda

Definicja

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 .

Dotyczy

Zobacz też