Dispatcher.BeginInvoke Metodo

Definizione

Esegue in modo asincrono un delegato sul thread al quale Dispatcher è associato.Executes a delegate asynchronously on the thread the Dispatcher is associated with.

Overload

BeginInvoke(Delegate, Object[])

Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread in cui è stato creato l'oggetto Dispatcher.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate)

Esegue in modo asincrono il delegato specificato con la priorità specificata sul thread al quale Dispatcher è associato.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

BeginInvoke(Delegate, DispatcherPriority, Object[])

Esegue in modo asincrono il delegato specificato con gli argomenti specificati, con la priorità specificata, sul thread in cui è stato creato l'oggetto Dispatcher.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate, Object)

Esegue in modo asincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Esegue in modo asincrono il delegato specificato con la priorità e la matrice di argomenti specificati sul thread al quale Dispatcher è associato.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

Commenti

In WPFWPF, solo il thread che ha creato DispatcherObject un può accedere a tale oggetto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Ad esempio, un thread in background che viene girato dal thread principale dell'interfaccia utente non può aggiornare il contenuto Button di un oggetto creato nel thread UI.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Affinché il thread in background acceda alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Questa operazione viene eseguita usando Invoke o. BeginInvokeThis is accomplished by using either Invoke or BeginInvoke. Invokeè sincrono BeginInvoke ed è asincrono.Invoke is synchronous and BeginInvoke is asynchronous. L'operazione viene aggiunta alla coda degli eventi di Dispatcher in corrispondenza dell'oggetto specificato. DispatcherPriorityThe operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvokeè asincrono; il controllo viene quindi restituito immediatamente all'oggetto chiamante dopo che è stato chiamato.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvokeRestituisce un DispatcherOperation oggetto che può essere utilizzato per interagire con il delegato quando il delegato si trova nella coda degli eventi.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L' DispatcherOperation oggetto restituito da BeginInvoke può essere usato in diversi modi per interagire con il delegato specificato, ad esempio:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modifica dell' DispatcherPriority oggetto del delegato in attesa di esecuzione nella coda degli eventi.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Rimozione del delegato dalla coda degli eventi.Removing the delegate from the event queue.

  • In attesa della restituzione del delegato.Waiting for the delegate to return.

  • Recupero del valore restituito dal delegato dopo l'esecuzione.Obtaining the value that the delegate returns after it is executed.

Se vengono BeginInvoke effettuate più chiamate allo stesso DispatcherPrioritymodo, verranno eseguite nell'ordine in cui sono state effettuate le chiamate.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Se BeginInvoke viene chiamato su un Dispatcher oggetto arrestato, la proprietà Status dell'oggetto restituito DispatcherOperation viene impostata su Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(Delegate, Object[])

Esegue in modo asincrono il delegato specificato con gli argomenti specificati sul thread in cui è stato creato l'oggetto Dispatcher.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

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

Parametri

method
Delegate

Delegato a un metodo che accetta i parametri specificati in args, inserito nella coda di eventi Dispatcher.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.An array of objects to pass as arguments to the given method. Può essere null.Can be null.

Restituisce

Oggetto, restituito immediatamente dopo la chiamata a BeginInvoke, utilizzabile per l'interazione con il delegato mentre è in attesa di esecuzione nella coda degli eventi.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Commenti

L' DispatcherOperation oggetto restituito da BeginInvoke può essere usato in diversi modi per interagire con il delegato specificato, ad esempio:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modifica dell' DispatcherPriority oggetto del delegato in attesa di esecuzione nella coda degli eventi.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Rimozione del delegato dalla coda degli eventi.Removing the delegate from the event queue.

  • In attesa della restituzione del delegato.Waiting for the delegate to return.

  • Recupero del valore restituito dal delegato dopo l'esecuzione.Obtaining the value that the delegate returns after it is executed.

BeginInvokeè asincrono; il controllo viene quindi restituito immediatamente all'oggetto chiamante dopo che è stato chiamato.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, solo il thread che ha creato DispatcherObject un può accedere a tale oggetto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Ad esempio, un thread in background che viene girato dal thread principale dell'interfaccia utente non può aggiornare il contenuto Button di un oggetto creato nel thread UI.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Affinché il thread in background acceda alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Questa operazione viene eseguita usando Invoke o. BeginInvokeThis is accomplished by using either Invoke or BeginInvoke. Invokeè sincrono BeginInvoke ed è asincrono.Invoke is synchronous and BeginInvoke is asynchronous. L'operazione viene aggiunta alla coda degli eventi di Dispatcher in corrispondenza dell'oggetto specificato. DispatcherPriorityThe operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Se BeginInvoke viene chiamato su un Dispatcher oggetto arrestato, la proprietà Status dell'oggetto restituito DispatcherOperation viene impostata su Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(DispatcherPriority, Delegate)

Esegue in modo asincrono il delegato specificato con la priorità specificata sul thread al quale Dispatcher è associato.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda degli eventi di Dispatcher, con la quale viene richiamato il metodo specificato.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate

Delegato a un metodo che non accetta argomenti, inserito nella coda degli eventi di Dispatcher.The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.

Restituisce

Oggetto, restituito immediatamente dopo la chiamata a BeginInvoke, utilizzabile per l'interazione con il delegato mentre è in attesa di esecuzione nella coda degli eventi.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Attributi

Eccezioni

method è null.method is null.

priority non è un oggetto DispatcherPriority valido.priority is not a valid DispatcherPriority.

Esempi

Nell'esempio seguente viene illustrato come inserire un'operazione su un Dispatcheroggetto.The following example shows how to place an operation onto a Dispatcher. Per il codice sorgente completo di questo esempio, vedere l' esempio di applicazione a thread singolo con calcolo a esecuzione prolungata.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

Viene innanzitutto creato un delegato che non accetta argomenti.First, a delegate is created that accepts no arguments.

public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()

BeginInvoke(DispatcherPriority, Delegate) Viene quindi chiamato il metodo.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Poiché ogni DispatcherObject oggetto dispone di una proprietà che Dispatcher restituisce l'oggetto a cui è associato Dispatcher , l'oggetto desiderato viene ottenuto DispatcherObjecteseguendo una query su, Button in startStopButtonquesto caso un oggetto denominato.Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Button named startStopButton. La chiamata a BeginInvoke(DispatcherPriority, Delegate) accetta due parametri: la priorità, impostata su DispatcherPriority.Normale il callback, che viene passato attraverso un'istanza del delegato NextPrimeDelegate.The call to BeginInvoke(DispatcherPriority, Delegate) takes two parameters: the priority, which is set to DispatcherPriority.Normal, and the callback, which is passed in through an instance of the delegate NextPrimeDelegate.

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

Commenti

Se vengono BeginInvoke effettuate più chiamate allo stesso DispatcherPrioritymodo, verranno eseguite nell'ordine in cui sono state effettuate le chiamate.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvokeRestituisce un DispatcherOperation oggetto che può essere utilizzato per interagire con il delegato quando il delegato si trova nella coda degli eventi.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L' DispatcherOperation oggetto restituito da BeginInvoke può essere usato in diversi modi per interagire con il delegato specificato, ad esempio:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modifica dell' DispatcherPriority oggetto del delegato in attesa di esecuzione nella coda degli eventi.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Rimozione del delegato dalla coda degli eventi.Removing the delegate from the event queue.

  • In attesa della restituzione del delegato.Waiting for the delegate to return.

  • Recupero del valore restituito dal delegato dopo l'esecuzione.Obtaining the value that the delegate returns after it is executed.

BeginInvokeè asincrono; il controllo viene quindi restituito immediatamente all'oggetto chiamante dopo che è stato chiamato.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, solo il thread che ha creato DispatcherObject un può accedere a tale oggetto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Ad esempio, un thread in background che viene girato dal thread principale dell'interfaccia utente non può aggiornare il contenuto Button di un oggetto creato nel thread UI.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Affinché il thread in background acceda alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Questa operazione viene eseguita usando Invoke o. BeginInvokeThis is accomplished by using either Invoke or BeginInvoke. Invokeè sincrono BeginInvoke ed è asincrono.Invoke is synchronous and BeginInvoke is asynchronous. L'operazione viene aggiunta alla coda degli eventi di Dispatcher in corrispondenza dell'oggetto specificato. DispatcherPriorityThe operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Se BeginInvoke viene chiamato su un Dispatcher oggetto arrestato, la proprietà Status dell'oggetto restituito DispatcherOperation viene impostata su Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Vedi anche

BeginInvoke(Delegate, DispatcherPriority, Object[])

Esegue in modo asincrono il delegato specificato con gli argomenti specificati, con la priorità specificata, sul thread in cui è stato creato l'oggetto Dispatcher.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

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

Parametri

method
Delegate

Delegato a un metodo che accetta i parametri specificati in args, inserito nella coda di eventi Dispatcher.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda degli eventi di Dispatcher, con la quale viene richiamato il metodo specificato.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.An array of objects to pass as arguments to the given method. Può essere null.Can be null.

Restituisce

Oggetto, restituito immediatamente dopo la chiamata a BeginInvoke, utilizzabile per l'interazione con il delegato mentre è in attesa di esecuzione nella coda degli eventi.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Commenti

L' DispatcherOperation oggetto restituito da BeginInvoke può essere usato in diversi modi per interagire con il delegato specificato, ad esempio:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modifica dell' DispatcherPriority oggetto del delegato in attesa di esecuzione nella coda degli eventi.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Rimozione del delegato dalla coda degli eventi.Removing the delegate from the event queue.

  • In attesa della restituzione del delegato.Waiting for the delegate to return.

  • Recupero del valore restituito dal delegato dopo l'esecuzione.Obtaining the value that the delegate returns after it is executed.

BeginInvokeè asincrono; il controllo viene quindi restituito immediatamente all'oggetto chiamante dopo che è stato chiamato.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, solo il thread che ha creato DispatcherObject un può accedere a tale oggetto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Ad esempio, un thread in background che viene girato dal thread principale dell'interfaccia utente non può aggiornare il contenuto Button di un oggetto creato nel thread UI.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Affinché il thread in background acceda alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Questa operazione viene eseguita usando Invoke o. BeginInvokeThis is accomplished by using either Invoke or BeginInvoke. Invokeè sincrono BeginInvoke ed è asincrono.Invoke is synchronous and BeginInvoke is asynchronous. L'operazione viene aggiunta alla coda degli eventi di Dispatcher in corrispondenza dell'oggetto specificato. DispatcherPriorityThe operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Se BeginInvoke viene chiamato su un Dispatcher oggetto arrestato, la proprietà Status dell'oggetto restituito DispatcherOperation viene impostata su Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

BeginInvoke(DispatcherPriority, Delegate, Object)

Esegue in modo asincrono il delegato specificato con la priorità e l'argomento specificati sul thread al quale Dispatcher è associato.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda degli eventi di Dispatcher, con la quale viene richiamato il metodo specificato.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate

Delegato a un metodo che accetta un argomento, inserito nella coda degli eventi di Dispatcher.A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.

arg
Object

Oggetto da passare come argomento al metodo specificato.The object to pass as an argument to the specified method.

Restituisce

Oggetto, restituito immediatamente dopo la chiamata a BeginInvoke, utilizzabile per l'interazione con il delegato mentre è in attesa di esecuzione nella coda degli eventi.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Attributi

Eccezioni

method è null.method is null.

priority non è un oggetto DispatcherPriority valido.priority is not a valid DispatcherPriority.

Esempi

Nell'esempio seguente viene illustrato come inserire un'operazione su un Dispatcheroggetto.The following example shows how to place an operation onto a Dispatcher.

Viene innanzitutto creato un delegato che accetta un argomento, in questo caso una stringa.First, a delegate is created that accepts one argument, in this case a string.

private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)

BeginInvoke(DispatcherPriority, Delegate, Object) Viene quindi chiamato il metodo.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Poiché ogni DispatcherObject oggetto dispone di una proprietà che Dispatcher restituisce l'oggetto a cui è associato Dispatcher , l'oggetto desiderato viene ottenuto DispatcherObjecteseguendo una query su, Grid in tomorrowsWeatherquesto caso un oggetto denominato.Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Grid named tomorrowsWeather. La chiamata a BeginInvoke(DispatcherPriority, Delegate, Object) accetta tre parametri: la priorità, impostata su DispatcherPriority.Normal, il callback, passato attraverso un'istanza del delegato OneArgDelegatee una stringa denominata weather, che è l'argomento per il callback.The call to BeginInvoke(DispatcherPriority, Delegate, Object) takes three parameters: the priority, which is set to DispatcherPriority.Normal; the callback, which is passed in through an instance of the delegate OneArgDelegate; and a string named weather, which is the argument for the callback.

// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
    System.Windows.Threading.DispatcherPriority.Normal,
    new OneArgDelegate(UpdateUserInterface), 
    weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)

Commenti

Argpuò essere null se non è necessario alcun argomento.Arg can be null if no arguments are needed.

BeginInvokeRestituisce un DispatcherOperation oggetto che può essere utilizzato per interagire con il delegato quando il delegato si trova nella coda degli eventi.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L' DispatcherOperation oggetto restituito da BeginInvoke può essere usato in diversi modi per interagire con il delegato specificato, ad esempio:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modifica dell' DispatcherPriority oggetto del delegato in attesa di esecuzione nella coda degli eventi.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Rimozione del delegato dalla coda degli eventi.Removing the delegate from the event queue.

  • In attesa della restituzione del delegato.Waiting for the delegate to return.

  • Recupero del valore restituito dal delegato dopo l'esecuzione.Obtaining the value that the delegate returns after it is executed.

BeginInvokeè asincrono; il controllo viene quindi restituito immediatamente all'oggetto chiamante dopo che è stato chiamato.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, solo il thread che ha creato DispatcherObject un può accedere a tale oggetto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Ad esempio, un thread in background che viene girato dal thread principale dell'interfaccia utente non può aggiornare il contenuto Button di un oggetto creato nel thread UI.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Affinché il thread in background acceda alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente.In order for the background thread to access the content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Questa operazione viene eseguita usando Invoke o. BeginInvokeThis is accomplished by using either Invoke or BeginInvoke. Invokeè sincrono BeginInvoke ed è asincrono.Invoke is synchronous and BeginInvoke is asynchronous. L'operazione viene aggiunta alla coda degli eventi di Dispatcher in corrispondenza dell'oggetto specificato. DispatcherPriorityThe operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Se vengono BeginInvoke effettuate più chiamate allo stesso DispatcherPrioritymodo, verranno eseguite nell'ordine in cui sono state effettuate le chiamate.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Se BeginInvoke viene chiamato su un Dispatcher oggetto arrestato, la proprietà Status dell'oggetto restituito DispatcherOperation viene impostata su Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Vedi anche

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

Esegue in modo asincrono il delegato specificato con la priorità e la matrice di argomenti specificati sul thread al quale Dispatcher è associato.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

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

Parametri

priority
DispatcherPriority

Priorità, rispetto alle altre operazioni in sospeso nella coda degli eventi di Dispatcher, con la quale viene richiamato il metodo specificato.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate

Delegato a un metodo che accetta più argomenti, inserito nella coda degli eventi di Dispatcher.A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.

arg
Object

Oggetto da passare come argomento al metodo specificato.The object to pass as an argument to the specified method.

args
Object[]

Matrice di oggetti da passare come argomenti al metodo specificato.An array of objects to pass as arguments to the specified method.

Restituisce

Oggetto, restituito immediatamente dopo la chiamata a BeginInvoke, utilizzabile per l'interazione con il delegato mentre è in attesa di esecuzione nella coda di Dispatcher.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the Dispatcher queue.

Attributi

Eccezioni

method è null.method is null.

DispatcherPriority non è una priorità valida.DispatcherPriority is not a valid priority.

Commenti

Il arg parametro può essere null se non sono necessari argomenti.The arg parameter can be null if no arguments are needed.

BeginInvokeRestituisce un DispatcherOperation oggetto che può essere utilizzato per interagire con il delegato quando il delegato si trova nella coda degli eventi.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L' DispatcherOperation oggetto restituito da BeginInvoke può essere usato in diversi modi per interagire con il delegato specificato, ad esempio:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modifica dell' DispatcherPriority oggetto del delegato in attesa di esecuzione nella coda degli eventi.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Rimozione del delegato dalla coda degli eventi.Removing the delegate from the event queue.

  • In attesa della restituzione del delegato.Waiting for the delegate to return.

  • Recupero del valore restituito dal delegato dopo l'esecuzione.Obtaining the value that the delegate returns after it is executed.

BeginInvokeè asincrono; il controllo viene quindi restituito immediatamente all'oggetto chiamante dopo che è stato chiamato.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, solo il thread che ha creato DispatcherObject un può accedere a tale oggetto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Ad esempio, un thread in background che viene girato dal thread principale dell'interfaccia utente non può aggiornare il contenuto Button di un oggetto creato nel thread UI.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Affinché il thread in background acceda alla proprietà Content di Button, il thread in background deve delegare il lavoro all'oggetto Dispatcher associato al thread dell'interfaccia utente.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Questa operazione viene eseguita usando Invoke o. BeginInvokeThis is accomplished by using either Invoke or BeginInvoke. Invokeè sincrono BeginInvoke ed è asincrono.Invoke is synchronous and BeginInvoke is asynchronous. L'operazione viene aggiunta alla coda degli eventi di Dispatcher in corrispondenza dell'oggetto specificato. DispatcherPriorityThe operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Se vengono BeginInvoke effettuate più chiamate allo stesso DispatcherPrioritymodo, verranno eseguite nell'ordine in cui sono state effettuate le chiamate.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Se BeginInvoke viene chiamato su un Dispatcher oggetto arrestato, la proprietà Status dell'oggetto restituito DispatcherOperation viene impostata su Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Vedi anche

Si applica a