Monitor.PulseAll(Object) Метод

Определение

Уведомляет все ожидающие потоки об изменении состояния объекта.

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)

Параметры

obj
Object

Объект, посылающий импульс.

Исключения

Параметр obj имеет значение null.

Вызывающий поток не владеет блокировкой для указанного объекта.

Комментарии

Поток, которому в настоящее время принадлежит блокировка указанного объекта, вызывает этот метод, чтобы сигнализировать всем потокам, ожидающим получения блокировки объекта. После отправки сигнала потоки ожидания перемещаются в готовую очередь. Когда поток, вызывающий PulseAll блокировку, освобождает блокировку, следующий поток в готовой очереди получает блокировку.

Обратите внимание, что синхронизированный объект содержит несколько ссылок, включая ссылку на поток, содержащий блокировку, ссылку на готовую очередь, содержащую потоки, готовые к получению блокировки, и ссылку на очередь ожидания, содержащую потоки, ожидающие уведомления об изменении состояния объекта.

PulseAllМетоды Pulseи Wait методы должны вызываться из синхронизированного блока кода.

Примечания Pulse для метода объясняют, что происходит, если вызывается, когда Pulse потоки не ожидают.

Чтобы сообщить об одном потоке Pulse , используйте этот метод.

Применяется к

См. также раздел