Monitor.PulseAll(Object) Método

Definição

Notifica todos os fios em espera de uma alteração no estado do objeto.

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)

Parâmetros

obj
Object

O objeto que envia o pulso.

Exceções

O obj parâmetro é null.

O thread que chama não possui o bloqueio para o objeto especificado.

Observações

A thread que atualmente detém o bloqueio no objeto especificado invoca este método para sinalizar todas as threads que aguardam para adquirir o bloqueio no objeto. Após o envio do sinal, os threads em espera são movidos para a fila pronta. Quando o thread que invocou PulseAll liberta o bloqueio, o thread seguinte na fila ready adquire o bloqueio.

Note que um objeto sincronizado contém várias referências, incluindo uma referência ao thread que atualmente detém o bloqueio, uma referência à fila ready, que contém os threads prontos para obter o bloqueio, e uma referência à fila em espera, que contém os threads que aguardam notificação de uma alteração no estado do objeto.

Os Pulsemétodos , PulseAll, e Wait devem ser invocados de dentro de um bloco de código sincronizado.

As observações para o Pulse método explicam o que acontece se Pulse for chamado quando nenhum thread esteja à espera.

Para sinalizar um único fio, use o Pulse método.

Aplica-se a

Ver também