Dispatcher.Invoke Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
priority non è un DispatcherPriorityvalido.
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
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
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
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
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.