Dispatcher.Invoke Metodo

Definizione

Esegue il delegato specificato in modo sincrono sul thread Dispatcher a cui è associato.

Overload

Nome Descrizione
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

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

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

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

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

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

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Esegue in modo sincrono l'oggetto specificato Action con la priorità specificata nel thread Dispatcher a cui è associato .

Invoke(DispatcherPriority, TimeSpan, Delegate)

Esegue il delegato specificato in modo sincrono alla priorità specificata e con il valore di timeout specificato nel thread Dispatcher creato.

Invoke(DispatcherPriority, Delegate, Object)

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

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

Esegue il delegato specificato all'interno dell'intervallo di tempo designato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è associato .

Invoke(Delegate, TimeSpan, Object[])

Esegue il delegato specificato all'interno dell'intervallo di tempo designato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è associato .

Invoke(Action, DispatcherPriority, CancellationToken)

Esegue in modo sincrono l'oggetto specificato Action con la priorità specificata nel thread Dispatcher a cui è associato .

Invoke(DispatcherPriority, Delegate)

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

Invoke(Delegate, Object[])

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

Invoke(Action, DispatcherPriority)

Esegue in modo sincrono l'oggetto specificato Action con la priorità specificata nel thread Dispatcher a cui è associato .

Invoke(Action)

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

Invoke(Delegate, DispatcherPriority, Object[])

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

Invoke<TResult>(Func<TResult>)

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

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

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

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

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

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

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

Esempio

Nell'esempio seguente un delegato viene inserito in un oggetto Dispatcher in 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));
}
' 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 macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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.

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

Esegue il delegato specificato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è 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 Dispatcher coda eventi, con cui viene richiamato il metodo specificato.

timeout
TimeSpan

Quantità massima di tempo di attesa per l'avvio dell'operazione. Una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. 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, di cui viene eseguito il push nella coda di Dispatcher eventi.

arg
Object

Oggetto da passare come argomento al metodo specificato.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Attributi

Eccezioni

priority è uguale a Inactive.

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 macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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 il delegato specificato alla priorità specificata con l'argomento specificato in modo sincrono sul thread Dispatcher a cui è 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 Dispatcher coda eventi, con cui viene richiamato il metodo specificato.

timeout
TimeSpan

Quantità massima di tempo di attesa per l'avvio dell'operazione. Una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. 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, di cui viene eseguito il push nella coda di Dispatcher eventi.

arg
Object

Oggetto da passare come argomento al metodo specificato. Può essere null se non sono necessari argomenti.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Commenti

arg può essere null se non è necessario un argomento

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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 il delegato specificato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è 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 Dispatcher coda eventi, con cui viene richiamato il metodo specificato.

method
Delegate

Delegato a un metodo che accetta più argomenti, di cui viene eseguito il push nella coda di Dispatcher eventi.

arg
Object

Oggetto da passare come argomento al metodo specificato.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Commenti

arg può essere null se non è necessario un argomento

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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(Action, DispatcherPriority, CancellationToken, TimeSpan)

Esegue in modo sincrono l'oggetto specificato Action con la priorità specificata nel thread Dispatcher a cui è 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 action 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

Quantità massima di tempo di attesa per l'avvio dell'operazione. Una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. 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.

Eccezioni

callback è null.

timeout è un numero negativo diverso da -1 e questo metodo è stato richiamato tra 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 il delegato specificato in modo sincrono alla priorità specificata e con il valore di timeout specificato nel thread Dispatcher creato.

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

Quantità massima di tempo di attesa per l'avvio dell'operazione. Una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. 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 non accetta argomenti, di cui viene eseguito il push nella Dispatcher coda di eventi.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Attributi

Eccezioni

method è null.

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

priority è uguale a Inactive.

priority non è una priorità valida.

Commenti

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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)

Esegue il delegato specificato alla priorità specificata con l'argomento specificato in modo sincrono sul thread Dispatcher a cui è 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, di cui viene eseguito il push nella coda di Dispatcher eventi.

arg
Object

Oggetto da passare come argomento al metodo specificato.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Commenti

arg può essere null se non è necessario un argomento

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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(Delegate, TimeSpan, DispatcherPriority, Object[])

Esegue il delegato specificato all'interno dell'intervallo di tempo designato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è 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, che viene inserito nella coda di Dispatcher eventi.

timeout
TimeSpan

Quantità massima di tempo di attesa per l'avvio dell'operazione. Una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. 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.

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.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Eccezioni

method è null.

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

priority è uguale a Inactive.

priority non è una priorità valida.

Commenti

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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(Delegate, TimeSpan, Object[])

Esegue il delegato specificato all'interno dell'intervallo di tempo designato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è 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, che viene inserito nella coda di Dispatcher eventi.

timeout
TimeSpan

Quantità massima di tempo 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 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.

args
Object[]

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

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Eccezioni

method è null.

timeout è un numero negativo diverso da -1 e viene richiamato tra i thread.

Commenti

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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(Action, DispatcherPriority, CancellationToken)

Esegue in modo sincrono l'oggetto specificato Action con la priorità specificata nel thread Dispatcher a cui è 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

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 a cui è 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 coda eventi Dispatcher .

method
Delegate

Delegato a un metodo che non accetta argomenti, di cui viene eseguito il push nella Dispatcher coda di eventi.

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Attributi

Eccezioni

priority è uguale a Inactive.

priority non è una priorità valida.

method è null.

Esempio

Nell'esempio seguente un delegato viene inserito in un oggetto Dispatcher in 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));
}
' 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 macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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(Delegate, Object[])

Esegue il delegato specificato con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è 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, che viene inserito nella coda di Dispatcher eventi.

args
Object[]

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

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Commenti

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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(Action, DispatcherPriority)

Esegue in modo sincrono l'oggetto specificato Action con la priorità specificata nel thread Dispatcher a cui è 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

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 l'oggetto specificato Action in modo sincrono sul thread Dispatcher a cui è 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

Delegato da richiamare tramite il dispatcher.

Commenti

La priorità predefinita è DispatcherPriority.Send.

Si applica a

Invoke(Delegate, DispatcherPriority, Object[])

Esegue il delegato specificato alla priorità specificata con gli argomenti specificati in modo sincrono sul thread Dispatcher a cui è 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, che viene inserito nella coda di Dispatcher eventi.

priority
DispatcherPriority

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

args
Object[]

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

Valori restituiti

Valore restituito dal delegato richiamato o null se il delegato non ha alcun valore restituito.

Commenti

In macchine virtuali Windows 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. Questa operazione viene eseguita usando Invoke o BeginInvoke. Invoke è sincrono ed BeginInvoke è asincrono. L'operazione viene aggiunta alla coda di eventi di Dispatcher in 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<TResult>(Func<TResult>)

Esegue l'oggetto specificato Func<TResult> in modo sincrono sul thread Dispatcher a cui è 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

Tipo di valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

Delegato da richiamare tramite il dispatcher.

Valori restituiti

TResult

Valore restituito da callback.

Si applica a

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

Esegue in modo sincrono l'oggetto specificato Func<TResult> con la priorità specificata nel thread Dispatcher a cui è 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

Tipo di valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

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.

Valori restituiti

TResult

Valore restituito da callback.

Si applica a

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

Esegue in modo sincrono l'oggetto specificato Func<TResult> con la priorità specificata nel thread Dispatcher a cui è 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

Tipo di valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

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.

Valori restituiti

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 l'oggetto specificato Func<TResult> con la priorità specificata nel thread Dispatcher a cui è 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

Tipo di valore restituito del delegato specificato.

Parametri

callback
Func<TResult>

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

Quantità massima di tempo di attesa per l'avvio dell'operazione. Una volta avviata l'operazione, verrà completata prima che questo metodo venga restituito. 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.

Valori restituiti

TResult

Valore restituito da callback.

Eccezioni

callback è null.

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

priority non è una priorità valida.

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

Si applica a