Monitor.PulseAll(Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 , PulseAll
y 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 .