Compartilhar via


Monitor.PulseAll(Object) Método

Definição

Notifica todos os threads 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 parâmetro obj é null.

O thread de chamada não é proprietário do bloqueio do objeto especificado.

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 . Depois que o sinal é enviado, os threads de espera são movidos para a fila pronta. Quando o thread que invocou libera PulseAll o bloqueio, o próximo thread na fila pronta adquire o bloqueio.

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.

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

As observações do Pulse método explicam o que acontece se Pulse for chamado quando nenhum thread está aguardando.

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

Aplica-se a

Confira também