Monitor.PulseAll(Object) Metodo

Definizione

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 .

Si applica a

Vedi anche