Monitor.PulseAll(Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Notifica a tutti i thread in attesa che lo stato dell'oggetto è stato modificato.
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)
Parametri
- obj
- Object
Oggetto che invia l'impulso.
Eccezioni
Il valore del parametro obj
è null
.
Il thread chiamante non è il proprietario del blocco per l'oggetto specificato.
Commenti
Il thread che possiede attualmente il blocco nell'oggetto specificato richiama questo metodo per segnalare tutti i thread in attesa di acquisire il blocco sull'oggetto. Dopo l'invio del segnale, i thread in attesa vengono spostati nella coda pronta. Quando il thread richiamato PulseAll
rilascia il blocco, il thread successivo nella coda pronta acquisisce il blocco.
Si noti che un oggetto sincronizzato contiene diversi riferimenti, tra cui un riferimento al thread che attualmente contiene il blocco, un riferimento alla coda pronta, che contiene i thread pronti per ottenere il blocco e un riferimento alla coda in attesa, che contiene i thread in attesa della notifica di una modifica nello stato dell'oggetto.
I Pulsemetodi , PulseAll
e Wait devono essere richiamati da un blocco sincronizzato di codice.
Le osservazioni per il Pulse metodo spiegano cosa accade se viene chiamato quando Pulse non sono in attesa di thread.
Per segnalare un singolo thread, usare il Pulse
metodo .