Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe Dispatcher

 

Data di pubblicazione: ottobre 2016

Fornisce servizi per la gestione della coda di elementi di lavoro per un thread.

Spazio dei nomi:   System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)

System.Object
  System.Windows.Threading.Dispatcher

public sealed class Dispatcher

NomeDescrizione
System_CAPS_pubpropertySystem_CAPS_staticCurrentDispatcher

Ottiene il Dispatcher per il thread attualmente in esecuzione e crea un nuovo Dispatcher Se non è già associato al thread.

System_CAPS_pubpropertyHasShutdownFinished

Determina se il Dispatcher ha terminato l'arresto.

System_CAPS_pubpropertyHasShutdownStarted

Determina se il Dispatcher è in corso l'arresto.

System_CAPS_pubpropertyHooks

Ottiene la raccolta di hook che forniscono informazioni aggiuntive sull'evento relativamente il Dispatcher.

System_CAPS_pubpropertyThread

Ottiene il thread si Dispatcher è associato.

NomeDescrizione
System_CAPS_pubmethodBeginInvoke(Delegate, DispatcherPriority, Object[])

Esegue il delegato specificato in modo asincrono con gli argomenti specificati, la priorità specificata sul thread che il Dispatcher è stato creato.

System_CAPS_pubmethodBeginInvoke(Delegate, Object[])

Esegue il delegato specificato in modo asincrono con gli argomenti specificati sul thread che il Dispatcher è stato creato.

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate)

Esegue in modo asincrono il delegato specificato con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate, Object)

Esegue il delegato specificato in modo asincrono alla priorità specificata e con l'argomento specificato sul thread di Dispatcher è associato.

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Esegue il delegato specificato in modo asincrono alla priorità specificata e con la matrice di argomenti specificati nel thread di Dispatcher è associato.

System_CAPS_pubmethodBeginInvokeShutdown(DispatcherPriority)

Avvia la chiusura del Dispatcher in modo asincrono.

System_CAPS_pubmethodCheckAccess()

Determina se il thread chiamante è il thread associato a questo Dispatcher.

System_CAPS_pubmethodDisableProcessing()

Disabilita l'elaborazione del Dispatcher coda.

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_pubmethodSystem_CAPS_staticExitAllFrames()

Richiede che tutti i frame exit, inclusi i frame annidati.

System_CAPS_pubmethodSystem_CAPS_staticFromThread(Thread)

Ottiene il Dispatcher per il thread specificato.

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodInvoke(Action)

Esegue l'oggetto specificato Action in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Action, DispatcherPriority)

Esegue l'oggetto specificato Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Action, DispatcherPriority, CancellationToken)

Esegue l'oggetto specificato Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Esegue l'oggetto specificato Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Delegate, DispatcherPriority, Object[])

Esegue il delegato specificato con la priorità specificata con gli argomenti specificati in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Delegate, Object[])

Esegue il delegato specificato con gli argomenti specificati in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Esegue il delegato specificato entro l'intervallo di tempo designato con la priorità specificata con gli argomenti specificati in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(Delegate, TimeSpan, Object[])

Esegue il delegato specificato entro l'intervallo di tempo designato con la priorità specificata con gli argomenti specificati in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate)

Esegue in modo sincrono il delegato specificato con la priorità specificata sul thread in cui il Dispatcher è associato.

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate, Object)

Esegue il delegato specificato con la priorità specificata con l'argomento specificato in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate, Object, Object[])

Esegue il delegato specificato con la priorità specificata con gli argomenti specificati in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate)

Esegue il delegato specificato in modo sincrono con la priorità specificata e con il valore di timeout specificato sul thread di Dispatcher è stato creato.

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate, Object)

Esegue il delegato specificato con la priorità specificata con l'argomento specificato in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Esegue il delegato specificato con la priorità specificata con gli argomenti specificati in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>)

Esegue l'oggetto specificato Func<TResult> in modo sincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority)

Esegue l'oggetto specificato Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Esegue l'oggetto specificato Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Esegue l'oggetto specificato Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeAsync(Action)

Esegue l'oggetto specificato Action in modo asincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeAsync(Action, DispatcherPriority)

Esegue l'oggetto specificato Action in modo asincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeAsync(Action, DispatcherPriority, CancellationToken)

Esegue l'oggetto specificato Action in modo asincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>)

Esegue l'oggetto specificato Func<TResult> in modo asincrono sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>, DispatcherPriority)

Esegue l'oggetto specificato Func<TResult> in modo asincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Esegue l'oggetto specificato Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.

System_CAPS_pubmethodInvokeShutdown()

Avvia il processo di arresto di Dispatcher in modo sincrono.

System_CAPS_pubmethodSystem_CAPS_staticPushFrame(DispatcherFrame)

Immette un ciclo di esecuzione.

System_CAPS_pubmethodSystem_CAPS_staticRun()

Inserisce il frame di esecuzione principale nella coda degli eventi di Dispatcher.

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

System_CAPS_pubmethodSystem_CAPS_staticValidatePriority(DispatcherPriority, String)

Determina se l'oggetto specificato DispatcherPriority una priorità valida.

System_CAPS_pubmethodVerifyAccess()

Determina se il thread chiamante ha accesso a questo Dispatcher.

System_CAPS_pubmethodSystem_CAPS_staticYield()

Crea un oggetto awaitable che restituisce il controllo torna al dispatcher corrente in modo asincrono e offre l'opportunità per il dispatcher elaborare gli altri eventi.

System_CAPS_pubmethodSystem_CAPS_staticYield(DispatcherPriority)

Crea un oggetto awaitable che restituisce il controllo torna al dispatcher corrente in modo asincrono e offre l'opportunità per il dispatcher elaborare gli altri eventi. Il lavoro che si verifica quando il controllo torna al codice in attesa di essere il risultato di questo metodo viene pianificato con la priorità specificata.

NomeDescrizione
System_CAPS_pubeventShutdownFinished

Si verifica quando il Dispatcher Termina l'arresto.

System_CAPS_pubeventShutdownStarted

Si verifica quando il Dispatcher inizia l'arresto.

System_CAPS_pubeventUnhandledException

Si verifica quando una thread viene generata un'eccezione intercettata durante l'esecuzione di un delegato per mezzo di Invoke o BeginInvoke.

System_CAPS_pubeventUnhandledExceptionFilter

Si verifica quando una thread viene generata un'eccezione intercettata durante l'esecuzione di un delegato per mezzo di Invoke o BeginInvoke quando in fase di filtro.

NomeDescrizione
System_CAPS_pubmethodBeginInvoke(Action)

Sottoposto a overload. Esegue in modo asincrono il delegato specificato con priorità normale sul thread che l'oggetto specificato Dispatcher è stato creato.(Definito da DispatcherExtensions.)

System_CAPS_pubmethodBeginInvoke(Action, DispatcherPriority)

Sottoposto a overload. Esegue il delegato specificato in modo asincrono con la priorità specificata sul thread che l'oggetto specificato Dispatcher è stato creato.(Definito da DispatcherExtensions.)

System_CAPS_pubmethodInvoke(Action, TimeSpan)

Sottoposto a overload. Esegue il delegato specificato in modo sincrono sul thread che l'oggetto specificato Dispatcher è stato creato e arresta l'esecuzione dopo il periodo di timeout specificato.(Definito da DispatcherExtensions.)

System_CAPS_pubmethodInvoke(Action, TimeSpan, DispatcherPriority)

Sottoposto a overload. Esegue il delegato specificato in modo sincrono con la priorità specificata sul thread che l'oggetto specificato Dispatcher è stato creato e arresta l'esecuzione dopo il periodo di timeout specificato.(Definito da DispatcherExtensions.)

Il Dispatcher gestisce una coda con priorità di elementi di lavoro per un thread specifico.

Quando un Dispatcher viene creato in un thread, diventa l'unico Dispatcher che possono essere associate al thread, anche se il Dispatcher è stato arrestato.

Se si tenta di ottenere il CurrentDispatcher per il thread corrente e un Dispatcher non è associato al thread, un Dispatcher verrà creato. Oggetto Dispatcher viene creato anche quando si crea un DispatcherObject. Se si crea un Dispatcher in un thread in background, assicurarsi di arrestare il dispatcher prima della chiusura del thread.

Se un Dispatcher arrestato, non può essere riavviato.

In WPF, DispatcherObject sono accessibili solo dal Dispatcher è associato.  Ad esempio, un thread in background non è possibile aggiornare il contenuto di un Button associato il Dispatcher sul Interfaccia utente thread. Affinché il thread in background per accedere alla Content proprietà del Button, il thread in background deve delegare l'operazione per il Dispatcher associato il Interfaccia utente thread. Questa operazione viene eseguita tramite Invoke o BeginInvoke. Invoke è sincrono e BeginInvoke è asincrono. L'operazione viene aggiunta nella coda degli elementi di Dispatcher specificato DispatcherPriority.

Se BeginInvoke viene chiamato su un Dispatcher che ha interrotto l'esecuzione, la proprietà status dell'oggetto restituito DispatcherOperation è impostato su Aborted.

Tutti i metodi su Dispatcher, ad eccezione di DisableProcessing, sono a thread libero.

Oggetti che derivano da DispatcherObject presentano affinità di thread.

Oggetti che derivano da Freezable sono a thread libero quando sono bloccati. Per ulteriori informazioni, vedere Cenni preliminari sugli oggetti Freezable.

Nell'esempio seguente viene illustrato come inserire un'operazione in un Dispatcher. Per il codice sorgente completo di questo esempio, vedere Single-Threaded Application with Long-Running Calculation Sample.

Innanzitutto, viene creato un delegato che non accetta argomenti.

public delegate void NextPrimeDelegate();

Successivamente, BeginInvoke(DispatcherPriority, Delegate) viene chiamato. Questa chiamata a BeginInvoke(DispatcherPriority, Delegate) accetta due parametri: la priorità, che è impostata su DispatcherPriority.Normal, e il callback viene passato tramite un'istanza del delegato NextPrimeDelegate.

startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));

.NET Framework
Disponibile da 3.0
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: