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 блокировку, освобождает блокировку, следующий поток в готовой очереди получает блокировку.

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

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

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

Чтобы сигнализировать об одном потоке Pulse , используйте метод.

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

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