Monitor.PulseAll(Object) Metoda

Definicja

Powiadamia wszystkie oczekujące wątki o zmianie 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 to 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 w określonym obiekcie, wywołuje tę metodę, aby zasygnalizować wszystkie wątki oczekujące na uzyskanie blokady obiektu. Po wysłaniu sygnału wątki oczekujące zostaną przeniesione do gotowej kolejki. Gdy wątek, który wywołał PulseAll , zwalnia blokadę, następny wątek w kolejce gotowej uzyskuje blokadę.

Należy pamiętać, że zsynchronizowany obiekt zawiera kilka odwołań, w tym odwołanie do wątku, które obecnie przechowuje blokadę, odwołanie do gotowej kolejki, która zawiera wątki, które są gotowe do uzyskania blokady, oraz odwołanie do kolejki oczekującej, która zawiera wątki oczekujące na powiadomienie o zmianie stanu obiektu.

Metody Pulse, PulseAlli Wait muszą być wywoływane z poziomu zsynchronizowanego bloku kodu.

Uwagi dotyczące Pulse metody wyjaśniają, co się dzieje, jeśli Pulse jest wywoływane, gdy nie czekają wątki.

Aby zasygnalizować pojedynczy wątek, użyj Pulse metody .

Dotyczy

Zobacz też