Comparteix a través de


Monitor.PulseAll(Object) Método

Definición

Notifica un cambio de estado del objeto a todos los subprocesos que se encuentran en espera.

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

Objeto que envía el pulso.

Excepciones

El parámetro obj es null.

El subproceso que realiza la llamada no posee el bloqueo del objeto especificado.

Comentarios

El subproceso que posee actualmente el bloqueo en el objeto especificado invoca este método para indicar todos los subprocesos que esperan adquirir el bloqueo en el objeto. Una vez enviada la señal, los subprocesos en espera se mueven a la cola lista. Cuando el subproceso que invocó PulseAll libera el bloqueo, el siguiente subproceso de la cola lista adquiere el bloqueo.

Tenga en cuenta que un objeto sincronizado contiene varias referencias, incluida una referencia al subproceso que contiene actualmente el bloqueo, una referencia a la cola lista, que contiene los subprocesos que están listos para obtener el bloqueo y una referencia a la cola en espera, que contiene los subprocesos que están esperando la notificación de un cambio en el estado del objeto.

Los Pulsemétodos , PulseAlly Wait se deben invocar desde un bloque de código sincronizado.

Los comentarios del Pulse método explican lo que sucede si Pulse se llama cuando no hay subprocesos en espera.

Para indicar un único subproceso, use el Pulse método .

Se aplica a

Consulte también