Monitor.PulseAll(Object) Método

Definição

Notifica todos os threads em espera de uma alteração no estado do objeto.Notifies all waiting threads of a change in the object's state.

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.The object that sends the pulse.

Exceções

O parâmetro obj é null.The obj parameter is null.

O thread de chamada não é proprietário do bloqueio do objeto especificado.The calling thread does not own the lock for the specified object.

Comentários

O thread que atualmente possui o bloqueio no objeto especificado invoca esse método para sinalizar todos os threads aguardando para adquirir o bloqueio no objeto.The thread that currently owns the lock on the specified object invokes this method to signal all threads waiting to acquire the lock on the object. Depois que o sinal é enviado, os threads em espera são movidos para a fila pronta.After the signal is sent, the waiting threads are moved to the ready queue. Quando o thread que invocava PulseAll libera o bloqueio, o próximo thread da fila pronta adquire o bloqueio.When the thread that invoked PulseAll releases the lock, the next thread in the ready queue acquires the lock.

Observe que um objeto sincronizado contém várias referências, incluindo uma referência ao thread que atualmente mantém o bloqueio, uma referência à fila pronta, que contém os threads que estão prontos para obter o bloqueio e uma referência à fila de espera, que contém os threads que estão aguardando a notificação de uma alteração no estado do objeto.Note that a synchronized object holds several references, including a reference to the thread that currently holds the lock, a reference to the ready queue, which contains the threads that are ready to obtain the lock, and a reference to the waiting queue, which contains the threads that are waiting for notification of a change in the object's state.

Os Pulse PulseAll métodos, e Wait devem ser invocados de dentro de um bloco de código sincronizado.The Pulse, PulseAll, and Wait methods must be invoked from within a synchronized block of code.

Os comentários para o Pulse método explicam o que acontece se Pulse for chamado quando nenhum thread estiver aguardando.The remarks for the Pulse method explain what happens if Pulse is called when no threads are waiting.

Para sinalizar um único thread, use o Pulse método.To signal a single thread, use the Pulse method.

Aplica-se a

Confira também