Monitor.PulseAll(Object) Metodo

Definizione

Consente di notificare a tutti i thread in attesa che lo stato dell'oggetto è stato modificato.Notifies all waiting threads of a change in the object's state.

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.The object that sends the pulse.

Eccezioni

Il valore del parametro obj è null.The obj parameter is null.

Il thread chiamante non è il proprietario del blocco per l'oggetto specificato.The calling thread does not own the lock for the specified object.

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.The thread that currently owns the lock on the specified object invokes this method to signal all threads waiting to acquire the lock on the object. Una volta inviato il segnale, i thread in attesa vengono spostati nella coda di thread pronti.After the signal is sent, the waiting threads are moved to the ready queue. Quando il thread che ha PulseAll richiamato rilascia il blocco, il thread successivo nella coda di disponibilità acquisisce il blocco.When the thread that invoked PulseAll releases the lock, the next thread in the ready queue acquires the lock.

Si noti che un oggetto sincronizzato contiene diversi riferimenti, incluso un riferimento al thread che attualmente contiene il blocco, un riferimento alla coda di pronto, 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.Note that a synchronized object holds several references, including a reference to the thread that currently holds the lock, a reference to the ready queue, which contains the threads that are ready to obtain the lock, and a reference to the waiting queue, which contains the threads that are waiting for notification of a change in the object's state.

I Pulsemetodi PulseAll, eWait devono essere richiamati dall'interno di un blocco di codice sincronizzato.The Pulse, PulseAll, and Wait methods must be invoked from within a synchronized block of code.

Le osservazioni per il Pulse metodo spiegano cosa accade Pulse se viene chiamato quando nessun thread è in attesa.The remarks for the Pulse method explain what happens if Pulse is called when no threads are waiting.

Per segnalare un singolo thread, usare il Pulse metodo.To signal a single thread, use the Pulse method.

Si applica a

Vedi anche