Monitor.PulseAll(Object) Método

Definición

Notifica a todos los subprocesos en espera de un cambio en el estado del 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

Objeto que envía el pulso.

Excepciones

El obj parámetro 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 esperan la notificación de un cambio en el estado del objeto.

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

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

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

Se aplica a

Consulte también