Monitor.PulseAll(Object) Metodo

Definizione

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 , PulseAlle 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 .

Si applica a

Vedi anche