Condividi tramite


Dispatcher.Invoke Metodo

Definizione

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

Overload

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.

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.

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.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Esegue in modo sincrono il Action specificato con la priorità specificata sul thread al quale Dispatcher è associato.

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.

Invoke(DispatcherPriority, Delegate, Object)

Esegue in modo sincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.

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.

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.

Invoke(Action, DispatcherPriority, CancellationToken)

Esegue in modo sincrono il Action specificato con la priorità specificata sul thread al quale Dispatcher è associato.

Invoke(DispatcherPriority, Delegate)

Esegue il delegato specificato in modo sincrono alla priorità specificata nel thread a cui è associato l'oggetto Dispatcher .

Invoke(Delegate, Object[])

Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread al quale Dispatcher è associato.

Invoke(Action, DispatcherPriority)

Esegue in modo sincrono il Action specificato con la priorità specificata sul thread al quale Dispatcher è associato.

Invoke(Action)

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

Invoke(Delegate, DispatcherPriority, Object[])

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

Invoke<TResult>(Func<TResult>)

Esegue in modo sincrono il Func<TResult> specificato sul thread al quale Dispatcher è associato.

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

Esegue in modo sincrono il Func<TResult> specificato con la priorità specificata sul thread al quale Dispatcher è associato.

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

Esegue in modo sincrono il Func<TResult> specificato con la priorità specificata sul thread al quale Dispatcher è associato.

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

Esegue in modo sincrono il Func<TResult> specificato con la priorità specificata sul thread al quale Dispatcher è associato.

Esempio

Nell'esempio seguente un delegato viene inserito in un Dispatcher oggetto in utilizzando NormalInvoke.

// 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));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda eventi Dispatcher , con cui viene richiamato il metodo specificato.

timeout
TimeSpan

Quantità massima di tempo di attesa per l'avvio dell'operazione. Dopo l'avvio dell'operazione, l'operazione verrà completata prima della restituzione di questo metodo. Per specificare un'attesa infinita, usare il valore -1. In una chiamata allo stesso thread qualsiasi altro valore negativo viene convertito in -1, con conseguente attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un'eccezione ArgumentOutOfRangeException.

method
Delegate

Delegato a un metodo che accetta più argomenti, inserito nella coda degli eventi di Dispatcher.

arg
Object

Oggetto da passare come argomento al metodo specificato.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è un oggetto DispatcherPriority valido.

method è null.

timeout è un numero negativo diverso da -1 e questo metodo è stato richiamato tra thread.

Commenti

arg può essere null se non è necessario un argomento.

In WPF solo il thread che ha creato un DispatcherObject oggetto può accedere a tale oggetto. Ad esempio, un thread in background che viene disattivato dal thread principale dell'interfaccia utente non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente. A tale scopo, usare Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda eventi di in Dispatcher corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non tornerà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda eventi Dispatcher , con cui viene richiamato il metodo specificato.

timeout
TimeSpan

Quantità massima di tempo di attesa per l'avvio dell'operazione. Dopo l'avvio dell'operazione, l'operazione verrà completata prima della restituzione di questo metodo. Per specificare un'attesa infinita, usare il valore -1. In una chiamata allo stesso thread qualsiasi altro valore negativo viene convertito in -1, con conseguente attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un'eccezione ArgumentOutOfRangeException.

method
Delegate

Delegato a un metodo che accetta più argomenti, inserito nella coda degli eventi di Dispatcher.

arg
Object

Oggetto da passare come argomento al metodo specificato. Se non sono richiesti argomenti, può corrispondere a null.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Commenti

arg può essere null se non è necessario un argomento

In WPF solo il thread che ha creato un DispatcherObject oggetto può accedere a tale oggetto. Ad esempio, un thread in background che viene disattivato dal thread principale dell'interfaccia utente non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente. A tale scopo, usare Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda eventi di in Dispatcher corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non tornerà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda eventi Dispatcher , con cui viene richiamato il metodo specificato.

method
Delegate

Delegato a un metodo che accetta più argomenti, inserito nella coda degli eventi di Dispatcher.

arg
Object

Oggetto da passare come argomento al metodo specificato.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Commenti

arg può essere null se non è necessario un argomento

In WPF solo il thread che ha creato un DispatcherObject oggetto può accedere a tale oggetto. Ad esempio, un thread in background che viene disattivato dal thread principale dell'interfaccia utente non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente. A tale scopo, usare Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda eventi di in Dispatcher corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Esegue in modo sincrono il Action specificato con la priorità specificata sul thread al quale Dispatcher è associato.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Parametri

callback
Action

Delegato azione da richiamare tramite il dispatcher.

priority
DispatcherPriority

Priorità che determina l'ordine in cui viene richiamato il callback specificato rispetto alle altre operazioni in sospeso in Dispatcher.

cancellationToken
CancellationToken

Oggetto che indica se annullare l'azione.

timeout
TimeSpan

Tempo massimo di attesa per l'avvio dell'operazione. Dopo l'avvio dell'operazione, verrà completato prima che questo metodo venga restituito. Per specificare un'attesa infinita, usare un valore pari a -1. In una chiamata allo stesso thread, qualsiasi altro valore negativo viene convertito in -1, causando un'attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un ArgumentOutOfRangeExceptionoggetto .

Eccezioni

callback è null.

timeout è un numero negativo diverso da -1 e questo metodo è stato richiamato tra i thread.

priority non è una priorità valida.

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Si applica a

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella Dispatcher coda eventi, con cui viene richiamato il metodo specificato.

timeout
TimeSpan

Tempo massimo di attesa per l'avvio dell'operazione. Dopo l'avvio dell'operazione, verrà completato prima che questo metodo venga restituito. Per specificare un'attesa infinita, usare un valore pari a -1. In una chiamata allo stesso thread, qualsiasi altro valore negativo viene convertito in -1, causando un'attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un ArgumentOutOfRangeExceptionoggetto .

method
Delegate

Delegato a un metodo che non accetta argomenti, inserito nella coda degli eventi di Dispatcher.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Attributi

Eccezioni

method è null.

timeout è un numero negativo diverso da -1 e questo metodo è stato richiamato tra i thread.

priority è uguale a Inactive.

priority non è una priorità valida.

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

Invoke(DispatcherPriority, Delegate, Object)

Esegue in modo sincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella Dispatcher coda eventi, con cui viene richiamato il metodo specificato.

method
Delegate

Delegato a un metodo che accetta un argomento, inserito nella coda degli eventi di Dispatcher.

arg
Object

Oggetto da passare come argomento al metodo specificato.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Commenti

arg può essere null se un argomento non è necessario

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

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.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parametri

method
Delegate

Delegato a un metodo che accetta i parametri specificati in args, inserito nella coda di eventi Dispatcher.

timeout
TimeSpan

Tempo massimo di attesa per l'avvio dell'operazione. Dopo l'avvio dell'operazione, verrà completato prima che questo metodo venga restituito. Per specificare un'attesa infinita, usare un valore pari a -1. In una chiamata allo stesso thread, qualsiasi altro valore negativo viene convertito in -1, causando un'attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un ArgumentOutOfRangeExceptionoggetto .

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella Dispatcher coda eventi, con cui viene richiamato il metodo specificato.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato. Può essere null.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Eccezioni

method è null.

timeout è un numero negativo diverso da -1 e questo metodo è stato richiamato tra i thread.

priority è uguale a Inactive.

priority non è una priorità valida.

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

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.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Parametri

method
Delegate

Delegato a un metodo che accetta i parametri specificati in args, inserito nella coda di eventi Dispatcher.

timeout
TimeSpan

Tempo massimo di attesa per l'avvio dell'operazione. Tuttavia, una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. Per specificare un'attesa infinita, usare un valore pari a -1. In una chiamata allo stesso thread, qualsiasi altro valore negativo viene convertito in -1, causando un'attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un ArgumentOutOfRangeExceptionoggetto .

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato. Può essere null se non sono necessari argomenti.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Eccezioni

method è null.

timeout è un numero negativo diverso da -1 e si richiama tra i thread.

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

Invoke(Action, DispatcherPriority, CancellationToken)

Esegue in modo sincrono il Action specificato con la priorità specificata sul thread al quale Dispatcher è associato.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Parametri

callback
Action

Un delegato da richiamare tramite il dispatcher.

priority
DispatcherPriority

Priorità che determina l'ordine in cui viene richiamato il callback specificato rispetto alle altre operazioni in sospeso in Dispatcher.

cancellationToken
CancellationToken

Oggetto che indica se annullare l'azione.

Eccezioni

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Si applica a

Invoke(DispatcherPriority, Delegate)

Esegue il delegato specificato in modo sincrono alla priorità specificata nel thread Dispatcher associato.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Parametri

priority
DispatcherPriority

Priorità con cui viene richiamato il metodo specificato, rispetto alle altre operazioni in sospeso nella Dispatcher coda eventi.

method
Delegate

Delegato a un metodo che non accetta argomenti, inserito nella coda degli eventi di Dispatcher.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Esempio

Nell'esempio seguente viene inserito un delegato in un Dispatcher oggetto Normal usando 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));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

Invoke(Delegate, Object[])

Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread al quale Dispatcher è associato.

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Parametri

method
Delegate

Delegato a un metodo che accetta i parametri specificati in args, inserito nella coda di eventi Dispatcher.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato. Può essere null.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

Invoke(Action, DispatcherPriority)

Esegue in modo sincrono il Action specificato con la priorità specificata sul thread al quale Dispatcher è associato.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Parametri

callback
Action

Un delegato da richiamare tramite il dispatcher.

priority
DispatcherPriority

Priorità che determina l'ordine in cui viene richiamato il callback specificato rispetto alle altre operazioni in sospeso in Dispatcher.

Si applica a

Invoke(Action)

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

public:
 void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Parametri

callback
Action

Un delegato da richiamare tramite il dispatcher.

Commenti

La priorità predefinita è DispatcherPriority.Send.

Si applica a

Invoke(Delegate, DispatcherPriority, Object[])

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

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parametri

method
Delegate

Delegato a un metodo che accetta i parametri specificati in args, inserito nella coda di eventi Dispatcher.

priority
DispatcherPriority

Priorità con cui viene richiamato il metodo specificato, rispetto alle altre operazioni in sospeso nella Dispatcher coda eventi.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato. Può essere null.

Restituisce

Valore restituito dal delegato richiamato oppure null se il delegato non restituisce alcun valore.

Commenti

In WPF solo il thread creato DispatcherObject può accedere a tale oggetto. Ad esempio, un thread in background che viene interrotto dal thread dell'interfaccia utente principale non può aggiornare il contenuto di un Button oggetto creato nel thread dell'interfaccia utente. Per consentire al thread in background di accedere alla proprietà Content dell'oggetto Button, il thread in background deve delegare il lavoro al Dispatcher thread dell'interfaccia utente associato. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrona ed BeginInvoke è asincrona. L'operazione viene aggiunta alla coda di eventi dell'oggetto Dispatcher in corrispondenza dell'oggetto specificato DispatcherPriority.

Invoke è un'operazione sincrona; pertanto, il controllo non restituirà all'oggetto chiamante fino a quando non viene restituito il callback.

Si applica a

Invoke<TResult>(Func<TResult>)

Esegue in modo sincrono il Func<TResult> specificato sul thread al quale Dispatcher è associato.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

Parametri di tipo

TResult

Il tipo del valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

Un delegato da richiamare tramite il dispatcher.

Restituisce

TResult

Valore restituito da callback.

Si applica a

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

Esegue in modo sincrono il Func<TResult> specificato con la priorità specificata sul thread al quale Dispatcher è associato.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

Parametri di tipo

TResult

Il tipo del valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

Un delegato da richiamare tramite il dispatcher.

priority
DispatcherPriority

Priorità che determina l'ordine in cui viene richiamato il callback specificato rispetto alle altre operazioni in sospeso in Dispatcher.

Restituisce

TResult

Valore restituito da callback.

Si applica a

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

Esegue in modo sincrono il Func<TResult> specificato con la priorità specificata sul thread al quale Dispatcher è associato.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

Parametri di tipo

TResult

Il tipo del valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

Un delegato da richiamare tramite il dispatcher.

priority
DispatcherPriority

Priorità che determina l'ordine in cui viene richiamato il callback specificato rispetto alle altre operazioni in sospeso in Dispatcher.

cancellationToken
CancellationToken

Oggetto che indica se annullare l'operazione.

Restituisce

TResult

Valore restituito da callback.

Eccezioni

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Si applica a

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

Esegue in modo sincrono il Func<TResult> specificato con la priorità specificata sul thread al quale Dispatcher è associato.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

Parametri di tipo

TResult

Il tipo del valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

Un delegato da richiamare tramite il dispatcher.

priority
DispatcherPriority

Priorità che determina l'ordine in cui viene richiamato il callback specificato rispetto alle altre operazioni in sospeso in Dispatcher.

cancellationToken
CancellationToken

Oggetto che indica se annullare l'operazione.

timeout
TimeSpan

Tempo massimo di attesa per l'avvio dell'operazione. Dopo l'avvio dell'operazione, verrà completato prima che questo metodo venga restituito. Per specificare un'attesa infinita, usare un valore pari a -1. In una chiamata allo stesso thread, qualsiasi altro valore negativo viene convertito in -1, causando un'attesa infinita. In una chiamata tra thread qualsiasi altro valore negativo genera un ArgumentOutOfRangeExceptionoggetto .

Restituisce

TResult

Valore restituito da callback.

Eccezioni

callback è null.

timeout è un numero negativo diverso da -1 e il metodo è stato richiamato tra i thread.

priority non è una priorità valida.

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Si applica a