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 di una modifica nello stato dell'oggetto.
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 obj parametro è null.
Il thread chiamante non è proprietario del blocco per l'oggetto specificato.
Commenti
Il thread che attualmente possiede il blocco sull'oggetto specificato richiama questo metodo per segnalare a 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 , PulseAlle Wait devono essere richiamati dall'interno di un blocco di codice sincronizzato.
Le osservazioni per il metodo Pulse spiegano cosa accade se Pulse viene chiamato quando nessun thread è in attesa.
Per segnalare un singolo thread, usare il Pulse metodo .