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