Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe Dispatcher

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

System.Object
  System.Windows.Threading.Dispatcher

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

public sealed class Dispatcher

Il tipo Dispatcher espone i seguenti membri.

  NomeDescrizione
Proprietà pubblicaMembro staticoCurrentDispatcherOttiene Dispatcher per il thread attualmente in esecuzione e crea un nuovo Dispatcher se al thread non ne è già associato uno.
Proprietà pubblicaHasShutdownFinishedDetermina se Dispatcher ha terminato l'arresto.
Proprietà pubblicaHasShutdownStartedDetermina se Dispatcher si stia arrestando.
Proprietà pubblicaHooksOttiene l'insieme di hook che forniscono informazioni aggiuntive sull'evento relativamente a Dispatcher.
Proprietà pubblicaThreadOttiene il thread al quale Dispatcher è associato.
In alto

  NomeDescrizione
Metodo pubblicoBeginInvoke(Delegate, Object[])Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread in cui è stato creato l'oggetto Dispatcher.
Metodo pubblicoBeginInvoke(DispatcherPriority, Delegate)Esegue in modo asincrono il delegato specificato con la priorità specificata sul thread al quale Dispatcher è associato.
Metodo pubblicoBeginInvoke(Delegate, DispatcherPriority, Object[])Esegue in modo asincrono il delegato specificato con gli argomenti specificati, con la priorità specificata, sul thread in cui è stato creato l'oggetto Dispatcher.
Metodo pubblicoBeginInvoke(DispatcherPriority, Delegate, Object)Esegue in modo asincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoBeginInvoke(DispatcherPriority, Delegate, Object, Object[])Esegue in modo asincrono il delegato specificato con la priorità e la matrice di argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoBeginInvokeShutdownInizia in modo asincrono l'arresto di Dispatcher.
Metodo pubblicoCheckAccessDetermina se il thread chiamante è il thread associato a questo oggetto Dispatcher.
Metodo pubblicoDisableProcessingDisabilita l'elaborazione della coda di Dispatcher.
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo pubblicoMembro staticoExitAllFramesRichiede l'uscita di tutti i frame, inclusi i frame annidati.
Metodo pubblicoMembro staticoFromThreadOttiene Dispatcher per il thread specificato.
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoInvoke(Action)Esegue il comando specificato Action in modo sincrono nel thread di Dispatcher è associato.
Metodo pubblicoInvoke(Action, DispatcherPriority)Esegue il Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvoke(Delegate, Object[])Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(DispatcherPriority, Delegate)Esegue in modo sincrono il delegato specificato con la priorità specificata sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(Action, DispatcherPriority, CancellationToken)Esegue il Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvoke(Delegate, TimeSpan, Object[])Esegue in modo sincrono il delegato specificato entro l'intervallo di tempo designato con la priorità e gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(Delegate, DispatcherPriority, Object[])Esegue in modo sincrono il delegato specificato con la priorità e gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(DispatcherPriority, Delegate, Object)Esegue in modo sincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(DispatcherPriority, TimeSpan, Delegate)Esegue in modo sincrono il delegato specificato con la priorità e il valore di timeout specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(Action, DispatcherPriority, CancellationToken, TimeSpan)Esegue il Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvoke(Delegate, TimeSpan, DispatcherPriority, Object[])Esegue in modo sincrono il delegato specificato entro l'intervallo di tempo designato con la priorità e gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(DispatcherPriority, Delegate, Object, Object[])Esegue in modo sincrono il delegato specificato con la priorità e gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(DispatcherPriority, TimeSpan, Delegate, Object)Esegue in modo sincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])Esegue in modo sincrono il delegato specificato con la priorità e gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblicoInvoke<TResult>(Func<TResult>)Esegue il comando specificato Func<TResult> in modo sincrono nel thread di Dispatcher è associato.
Metodo pubblicoInvoke<TResult>(Func<TResult>, DispatcherPriority)Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvokeAsync(Action)Esegue il Action in modo asincrono nel thread di Dispatcher è associato.
Metodo pubblicoInvokeAsync(Action, DispatcherPriority)Esegue il Action in modo asincrono alla priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvokeAsync(Action, DispatcherPriority, CancellationToken)Esegue il Action in modo asincrono alla priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvokeAsync<TResult>(Func<TResult>)Esegue il Func<TResult> in modo asincrono nel thread di Dispatcher è associato.
Metodo pubblicoInvokeAsync<TResult>(Func<TResult>, DispatcherPriority)Esegue il Func<TResult> in modo asincrono alla priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblicoInvokeShutdownInizia il processo di arresto di Dispatcher.
Metodo pubblicoMembro staticoPushFrameImmette un ciclo di esecuzione.
Metodo pubblicoMembro staticoRunInserisce il frame di esecuzione principale nella coda degli eventi di Dispatcher.
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblicoMembro staticoValidatePriorityDetermina se la priorità stabilita dall'oggetto DispatcherPriority specificato sia valida.
Metodo pubblicoVerifyAccessDetermina se il thread chiamante ha accesso a Dispatcher.
Metodo pubblicoMembro staticoYield()Crea un oggetto awaitable in modo asincrono restituisce il controllo al dispatcher corrente e offre l'opportunità di dispatcher elaborare altri eventi.
Metodo pubblicoMembro staticoYield(DispatcherPriority)Crea un oggetto awaitable in modo asincrono restituisce il controllo al dispatcher corrente e offre l'opportunità di dispatcher elaborare altri eventi. Il lavoro che si verifica quando il controllo torna al codice in attesa di essere il risultato di questo metodo è programmato con la priorità specificata.
In alto

  NomeDescrizione
Evento pubblicoShutdownFinishedSi verifica quando Dispatcher termina l'arresto.
Evento pubblicoShutdownStartedSi verifica quando Dispatcher inizia l'arresto.
Evento pubblicoUnhandledExceptionSi verifica quando viene generata un'eccezione del thread non intercettata durante l'esecuzione di un delegato mediante Invoke o BeginInvoke.
Evento pubblicoUnhandledExceptionFilterSi verifica quando viene generata un'eccezione del thread non intercettata durante l'esecuzione di un delegato mediante Invoke o BeginInvoke in fase di filtro.
In alto

  NomeDescrizione
Metodo di estensione pubblicoBeginInvoke(Action)Sottoposto a overload. Esegue il delegato specificato in modo asincrono con priorità normale sul thread che specificato Dispatcher è stato creato in precedenza. (Definito da DispatcherExtensions).
Metodo di estensione pubblicoBeginInvoke(Action, DispatcherPriority)Sottoposto a overload. Esegue il delegato specificato in modo asincrono con priorità specificata nel thread che specificato Dispatcher è stato creato in precedenza. (Definito da DispatcherExtensions).
Metodo di estensione pubblicoInvoke(Action)Sottoposto a overload. Esegue il delegato specificato in modo sincrono con priorità normale sul thread che specificato Dispatcher è stato creato in precedenza. (Definito da DispatcherExtensions).
Metodo di estensione pubblicoInvoke(Action, TimeSpan)Sottoposto a overload. Esegue il delegato specificato in modo sincrono sul thread che specificato Dispatcher è stato creato in precedenza e interrompe l'esecuzione dopo il periodo di timeout specificato. (Definito da DispatcherExtensions).
Metodo di estensione pubblicoInvoke(Action, DispatcherPriority)Sottoposto a overload. Esegue il delegato specificato in modo sincrono con priorità specificata nel thread che specificato Dispatcher è stato creato in precedenza. (Definito da DispatcherExtensions).
Metodo di estensione pubblicoInvoke(Action, TimeSpan, DispatcherPriority)Sottoposto a overload. Esegue il delegato specificato in modo sincrono con priorità specificata nel thread che specificato Dispatcher è stato creato in precedenza e interrompe l'esecuzione dopo il periodo di timeout specificato. (Definito da DispatcherExtensions).
In alto

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

Quando si crea un oggetto Dispatcher è su un thread, questo diviene il solo oggetto Dispatcher che è possibile associare al thread, anche se Dispatcher è arrestato.

Se si tenta di ottenere CurrentDispatcher per il thread corrente e al thread non è associato Dispatcher, verrà creato un oggetto Dispatcher. A Dispatcher viene creata anche quando si crea un DispatcherObject. Se si crea un Dispatcher su un thread in background, accertarsi di arrestare il dispatcher prima di terminare il thread.

Se Dispatcher è arrestato, non può essere riavviato.

In WPF è possibile accedere a DispatcherObject solo per l'oggetto Dispatcher a esso associato. Ad esempio, un thread in background non può aggiornare il contenuto di un oggetto Button associato a Dispatcher sul thread interfaccia utente. Per poter accedere alla proprietà Content di Button, il thread in background deve delegare l'operazione all'oggetto Dispatcher associato al thread della interfaccia utente. Questa operazione viene eseguita utilizzando Invoke o BeginInvoke. Invoke è sincrono e BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di Dispatcher con la priorità stabilita dall'oggetto DispatcherPriority specificato.

Se viene chiamato BeginInvoke su un oggetto Dispatcher arrestato, la proprietà di stato dell'oggetto DispatcherOperation restituito verrà impostata su Aborted.

Tutti i metodi di Dispatcher, fatta eccezione per DisableProcessing sono a thread libero.

Gli oggetti che derivano da DispatcherObject hanno affinità di thread.

Gli 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 Dispatcher. Per il codice sorgente completo di questo esempio, vedere Esempio di applicazione a thread singolo con calcolo di lunga durata (la pagina potrebbe essere in inglese).

In primo luogo viene creato un delegato che non accetta argomenti.


public delegate void NextPrimeDelegate();


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


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


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft