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

Metodo Dispatcher.Invoke

Esegue in modo sincrono il delegato specificato sul thread al quale Dispatcher è associato.

Si tratta di un membro di overload. Per informazioni complete su questo membro, inclusi la sintassi, l'utilizzo e gli esempi, fare clic su un nome nell'elenco degli overload.

  Nome Descrizione
Metodo pubblico Invoke(Action) Esegue il comando specificato Action in modo sincrono nel thread di Dispatcher è associato.
Metodo pubblico Invoke<TResult>(Func<TResult>) Esegue il comando specificato Func<TResult> in modo sincrono nel thread di Dispatcher è associato.
Metodo pubblico Invoke(Action, DispatcherPriority) Esegue il Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblico Invoke(Delegate, Object[]) Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblico Invoke(DispatcherPriority, Delegate) Esegue in modo sincrono il delegato specificato con la priorità specificata sul thread al quale Dispatcher è associato.
Metodo pubblico Invoke<TResult>(Func<TResult>, DispatcherPriority) Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblico Invoke(Action, DispatcherPriority, CancellationToken) Esegue il Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblico Invoke(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 pubblico Invoke(Delegate, DispatcherPriority, Object[]) Esegue in modo sincrono il delegato specificato con la priorità e gli argomenti specificati sul thread al quale Dispatcher è associato.
Metodo pubblico Invoke(DispatcherPriority, Delegate, Object) Esegue in modo sincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.
Metodo pubblico Invoke(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 pubblico Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblico Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) Esegue il Action in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblico Invoke(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 pubblico Invoke(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 pubblico Invoke(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 pubblico Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) Esegue il Func<TResult> in modo sincrono con la priorità specificata sul thread di Dispatcher è associato.
Metodo pubblico Invoke(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.
In alto

In WPF l'oggetto sarà accessibile soltanto dal thread che ha creato DispatcherObject. Ad esempio, un thread in background rimosso dal thread principale dell'interfaccia utente non può aggiornare il contenuto di un oggetto Button creato sul thread dell'interfaccia utente. Per poter accedere alla proprietà Content di Button, il thread in background deve delegare l'operazione all'oggetto Dispatcher associato al thread dell'interfaccia utente. Questa operazione viene eseguita utilizzando Invoke oppure BeginInvoke. Invoke è sincrono, mentre BeginInvoke è asincrono. L'operazione viene aggiunta alla coda degli eventi di Dispatcher con la priorità stabilita dall'oggetto DispatcherPriority specificato.

Invoke è un'operazione sincrona, pertanto il controllo non ritornerà all'oggetto chiamante fino alla restituzione da parte del callback.

Nell'esempio seguente viene inserito un delegato in Dispatcher con Normal utilizzando Invoke.


// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}


Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft