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 , используйте этот метод.

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

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