Monitor.PulseAll(Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.