Dispatcher.BeginInvoke Dispatcher.BeginInvoke Dispatcher.BeginInvoke Dispatcher.BeginInvoke Method

Definition

Führt eine Delegaten asynchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.Executes a delegate asynchronously on the thread the Dispatcher is associated with.

Überlädt

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

Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten für den Thread aus, für den der Dispatcher erstellt wurde.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate)

Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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

Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten und der angegebenen Priorität für den Thread aus, für den der Dispatcher erstellt wurde.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) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object)

Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität und dem angegebenen Argument auf dem Thread aus, dem der Dispatcher zugeordnet ist.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[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität und dem angegebenen Argumentarray auf dem Thread aus, dem der Dispatcher zugeordnet ist.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

Hinweise

In WPFWPF, nur der Thread, der erstellt eine DispatcherObject können auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Z. B. ein Hintergrundthread, der aus dem Hauptbenutzeroberflächen-Thread, deaktivieren erstellt wurde kann nicht aktualisiert werden den Inhalt einer Button , die im UI-Thread erstellt wurde.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. In der Hintergrundthread die Content-Eigenschaft der Zugriff auf die Button, der Hintergrundthread die Verarbeitung zur delegieren muss die Dispatcher im UI-Thread zugeordnet.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. Dies wird erreicht, indem Sie entweder Invoke oder BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron.Invoke is synchronous and BeginInvoke is asynchronous. Der Vorgang wurde an die Ereigniswarteschlange von der Dispatcher an der angegebenen DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvoke ist asynchron. aus diesem Grund sofort die steuerelementrückgabe an das aufrufende Objekt nach dem sie aufgerufen wird.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvoke Gibt eine DispatcherOperation -Objekt, das verwendet werden kann, um mit dem Delegaten zu interagieren, wenn der Delegat in der Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Die DispatcherOperation zurückgegebenes Objekt BeginInvoke kann auf verschiedene Weise für die Interaktion mit den angegebenen Delegaten verwendet werden:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Ändern der DispatcherPriority des Delegaten wie ausstehende Ausführung in der Ereigniswarteschlange abgerufen.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen den Delegaten aus der Ereigniswarteschlange.Removing the delegate from the event queue.

  • Es wird darauf gewartet, dass der Delegat, der zurückgegeben.Waiting for the delegate to return.

  • Abrufen des Werts, die der Delegat, nachdem sie zurückgegeben ausgeführt wird.Obtaining the value that the delegate returns after it is executed.

Wenn mehrere BeginInvoke Aufrufe gleichzeitig DispatcherPriority, werden sie in der Reihenfolge der Aufrufe wurden ausgeführt.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Wenn BeginInvoke aufgerufen wird, auf eine Dispatcher , die heruntergefahren wurde, der Status-Eigenschaft des zurückgegebenen DispatcherOperation nastaven NA hodnotu 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[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[])

Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten für den Thread aus, für den der Dispatcher erstellt wurde.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

Parameter

method
Delegate Delegate Delegate Delegate

Der Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen.An array of objects to pass as arguments to the given method. Kann null sein.Can be null.

Gibt zurück

Ein Objekt, das unmittelbar nach dem Aufruf von BeginInvoke zurückgegeben wird und für die Interaktion mit dem Delegaten verwendet werden kann, während im Delegaten die Ausführung einer Aufgabe in der Warteschlange steht.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.

Hinweise

Die DispatcherOperation zurückgegebenes Objekt BeginInvoke kann auf verschiedene Weise für die Interaktion mit den angegebenen Delegaten verwendet werden:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Ändern der DispatcherPriority des Delegaten wie ausstehende Ausführung in der Ereigniswarteschlange abgerufen.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen den Delegaten aus der Ereigniswarteschlange.Removing the delegate from the event queue.

  • Es wird darauf gewartet, dass der Delegat, der zurückgegeben.Waiting for the delegate to return.

  • Abrufen des Werts, die der Delegat, nachdem sie zurückgegeben ausgeführt wird.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. aus diesem Grund sofort die steuerelementrückgabe an das aufrufende Objekt nach dem sie aufgerufen wird.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, nur der Thread, der erstellt eine DispatcherObject können auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Z. B. ein Hintergrundthread, der aus dem Hauptbenutzeroberflächen-Thread, deaktivieren erstellt wurde kann nicht aktualisiert werden den Inhalt einer Button , die im UI-Thread erstellt wurde.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. In der Hintergrundthread die Content-Eigenschaft der Zugriff auf die Button, der Hintergrundthread die Verarbeitung zur delegieren muss die Dispatcher im UI-Thread zugeordnet.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. Dies wird erreicht, indem Sie entweder Invoke oder BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron.Invoke is synchronous and BeginInvoke is asynchronous. Der Vorgang wurde an die Ereigniswarteschlange von der Dispatcher an der angegebenen DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn BeginInvoke aufgerufen wird, auf eine Dispatcher , die heruntergefahren wurde, der Status-Eigenschaft des zurückgegebenen DispatcherOperation nastaven NA hodnotu 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) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate)

Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.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

Parameter

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Die Priorität, relativ zu den anderen anstehenden Operationen in der Dispatcher-Ereigniswarteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Der Delegat zu einer Methode, die keine Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.

Gibt zurück

Ein Objekt, das unmittelbar nach dem Aufruf von BeginInvoke zurückgegeben wird und für die Interaktion mit dem Delegaten verwendet werden kann, während im Delegaten die Ausführung einer Aufgabe in der Warteschlange steht.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.

Ausnahmen

Beispiele

Das folgende Beispiel zeigt, wie Sie einen Vorgang auf Platzieren einer Dispatcher.The following example shows how to place an operation onto a Dispatcher. Der vollständige Quellcode dieses Beispiels, finden Sie unter Single-Threaded Application with Long-Running Calculation Sample.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

Zuerst wird ein Delegat erstellt, die keine Argumente akzeptiert.First, a delegate is created that accepts no arguments.

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

Als Nächstes BeginInvoke(DispatcherPriority, Delegate) aufgerufen wird.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Da jede DispatcherObject verfügt über eine Eigenschaft, die zurückgibt der Dispatcher zugeordnet ist, den gewünschten Dispatcher durch Abfragen des der DispatcherObject, in diesem Fall eine Button mit dem Namen startStopButton.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. Der Aufruf von BeginInvoke(DispatcherPriority, Delegate) akzeptiert zwei Parameter: die Priorität, die auf DispatcherPriority.Normal, und der Rückruf, der durch eine Instanz des Delegaten übergeben wird 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))

Hinweise

Wenn mehrere BeginInvoke Aufrufe gleichzeitig DispatcherPriority, werden sie in der Reihenfolge der Aufrufe wurden ausgeführt.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvoke Gibt eine DispatcherOperation -Objekt, das verwendet werden kann, um mit dem Delegaten zu interagieren, wenn der Delegat in der Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Die DispatcherOperation zurückgegebenes Objekt BeginInvoke kann auf verschiedene Weise für die Interaktion mit den angegebenen Delegaten verwendet werden:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Ändern der DispatcherPriority des Delegaten wie ausstehende Ausführung in der Ereigniswarteschlange abgerufen.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen den Delegaten aus der Ereigniswarteschlange.Removing the delegate from the event queue.

  • Es wird darauf gewartet, dass der Delegat, der zurückgegeben.Waiting for the delegate to return.

  • Abrufen des Werts, die der Delegat, nachdem sie zurückgegeben ausgeführt wird.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. aus diesem Grund sofort die steuerelementrückgabe an das aufrufende Objekt nach dem sie aufgerufen wird.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, nur der Thread, der erstellt eine DispatcherObject können auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Z. B. ein Hintergrundthread, der aus dem Hauptbenutzeroberflächen-Thread, deaktivieren erstellt wurde kann nicht aktualisiert werden den Inhalt einer Button , die im UI-Thread erstellt wurde.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. In der Hintergrundthread die Content-Eigenschaft der Zugriff auf die Button, der Hintergrundthread die Verarbeitung zur delegieren muss die Dispatcher im UI-Thread zugeordnet.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. Dies wird erreicht, indem Sie entweder Invoke oder BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron.Invoke is synchronous and BeginInvoke is asynchronous. Der Vorgang wurde an die Ereigniswarteschlange von der Dispatcher an der angegebenen DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn BeginInvoke aufgerufen wird, auf eine Dispatcher , die heruntergefahren wurde, der Status-Eigenschaft des zurückgegebenen DispatcherOperation nastaven NA hodnotu Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Siehe auch

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

Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten und der angegebenen Priorität für den Thread aus, für den der Dispatcher erstellt wurde.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

Parameter

method
Delegate Delegate Delegate Delegate

Der Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Die Priorität, relativ zu den anderen anstehenden Operationen in der Dispatcher-Ereigniswarteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen.An array of objects to pass as arguments to the given method. Kann null sein.Can be null.

Gibt zurück

Ein Objekt, das unmittelbar nach dem Aufruf von BeginInvoke zurückgegeben wird und für die Interaktion mit dem Delegaten verwendet werden kann, während im Delegaten die Ausführung einer Aufgabe in der Warteschlange steht.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.

Hinweise

Die DispatcherOperation zurückgegebenes Objekt BeginInvoke kann auf verschiedene Weise für die Interaktion mit den angegebenen Delegaten verwendet werden:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Ändern der DispatcherPriority des Delegaten wie ausstehende Ausführung in der Ereigniswarteschlange abgerufen.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen den Delegaten aus der Ereigniswarteschlange.Removing the delegate from the event queue.

  • Es wird darauf gewartet, dass der Delegat, der zurückgegeben.Waiting for the delegate to return.

  • Abrufen des Werts, die der Delegat, nachdem sie zurückgegeben ausgeführt wird.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. aus diesem Grund sofort die steuerelementrückgabe an das aufrufende Objekt nach dem sie aufgerufen wird.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, nur der Thread, der erstellt eine DispatcherObject können auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Z. B. ein Hintergrundthread, der aus dem Hauptbenutzeroberflächen-Thread, deaktivieren erstellt wurde kann nicht aktualisiert werden den Inhalt einer Button , die im UI-Thread erstellt wurde.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. In der Hintergrundthread die Content-Eigenschaft der Zugriff auf die Button, der Hintergrundthread die Verarbeitung zur delegieren muss die Dispatcher im UI-Thread zugeordnet.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. Dies wird erreicht, indem Sie entweder Invoke oder BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron.Invoke is synchronous and BeginInvoke is asynchronous. Der Vorgang wurde an die Ereigniswarteschlange von der Dispatcher an der angegebenen DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn BeginInvoke aufgerufen wird, auf eine Dispatcher , die heruntergefahren wurde, der Status-Eigenschaft des zurückgegebenen DispatcherOperation nastaven NA hodnotu 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) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object)

Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität und dem angegebenen Argument auf dem Thread aus, dem der Dispatcher zugeordnet ist.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

Parameter

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Die Priorität, relativ zu den anderen anstehenden Operationen in der Dispatcher-Ereigniswarteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Ein Delegat zu einer Methode, die ein Argument erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.

arg
Object Object Object Object

Das Objekt, das als Argument an die angegebene Methode übergeben wird.The object to pass as an argument to the specified method.

Gibt zurück

Ein Objekt, das unmittelbar nach dem Aufruf von BeginInvoke zurückgegeben wird und für die Interaktion mit dem Delegaten verwendet werden kann, während im Delegaten die Ausführung einer Aufgabe in der Warteschlange steht.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.

Ausnahmen

Beispiele

Das folgende Beispiel zeigt, wie Sie einen Vorgang auf Platzieren einer Dispatcher.The following example shows how to place an operation onto a Dispatcher.

Zuerst wird ein Delegat erstellt, die ein Argument, in diesem Fall eine Zeichenfolge akzeptiert.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)

Als Nächstes BeginInvoke(DispatcherPriority, Delegate, Object) aufgerufen wird.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Da jede DispatcherObject verfügt über eine Eigenschaft, die zurückgibt der Dispatcher zugeordnet ist, den gewünschten Dispatcher durch Abfragen des der DispatcherObject, in diesem Fall eine Grid mit dem Namen tomorrowsWeather.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. Der Aufruf von BeginInvoke(DispatcherPriority, Delegate, Object) akzeptiert drei Parameter: die Priorität, die auf DispatcherPriority.Normal; der Rückruf, der durch eine Instanz des Delegaten übergebenen OneArgDelegate; und eine Zeichenfolge, die mit dem Namen weather, dies ist das Argument für den Rückruf.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)

Hinweise

Arg kann null , wenn keine Argumente erforderlich sind.Arg can be null if no arguments are needed.

BeginInvoke Gibt eine DispatcherOperation -Objekt, das verwendet werden kann, um mit dem Delegaten zu interagieren, wenn der Delegat in der Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Die DispatcherOperation zurückgegebenes Objekt BeginInvoke kann auf verschiedene Weise für die Interaktion mit den angegebenen Delegaten verwendet werden:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Ändern der DispatcherPriority des Delegaten wie ausstehende Ausführung in der Ereigniswarteschlange abgerufen.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen den Delegaten aus der Ereigniswarteschlange.Removing the delegate from the event queue.

  • Es wird darauf gewartet, dass der Delegat, der zurückgegeben.Waiting for the delegate to return.

  • Abrufen des Werts, die der Delegat, nachdem sie zurückgegeben ausgeführt wird.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. aus diesem Grund sofort die steuerelementrückgabe an das aufrufende Objekt nach dem sie aufgerufen wird.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, nur der Thread, der erstellt eine DispatcherObject können auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Z. B. ein Hintergrundthread, der aus dem Hauptbenutzeroberflächen-Thread, deaktivieren erstellt wurde kann nicht aktualisiert werden den Inhalt einer Button , die im UI-Thread erstellt wurde.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. In der Hintergrundthread die Content-Eigenschaft der Zugriff auf die Button, der Hintergrundthread die Verarbeitung zur delegieren muss die Dispatcher im UI-Thread zugeordnet.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. Dies wird erreicht, indem Sie entweder Invoke oder BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron.Invoke is synchronous and BeginInvoke is asynchronous. Der Vorgang wurde an die Ereigniswarteschlange von der Dispatcher an der angegebenen DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn mehrere BeginInvoke Aufrufe gleichzeitig DispatcherPriority, werden sie in der Reihenfolge der Aufrufe wurden ausgeführt.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Wenn BeginInvoke aufgerufen wird, auf eine Dispatcher , die heruntergefahren wurde, der Status-Eigenschaft des zurückgegebenen DispatcherOperation nastaven NA hodnotu Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Siehe auch

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

Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität und dem angegebenen Argumentarray auf dem Thread aus, dem der Dispatcher zugeordnet ist.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

Parameter

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Die Priorität, relativ zu den anderen anstehenden Operationen in der Dispatcher-Ereigniswarteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Ein Delegat zu einer Methode, die mehrere Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.

arg
Object Object Object Object

Das Objekt, das als Argument an die angegebene Methode übergeben wird.The object to pass as an argument to the specified method.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen.An array of objects to pass as arguments to the specified method.

Gibt zurück

Ein Objekt, das unmittelbar nach dem Aufruf von BeginInvoke zurückgegeben wird und für die Interaktion mit dem Delegaten verwendet werden kann, während im Delegaten die Ausführung einer Aufgabe in der Dispatcher-Warteschlange steht.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.

Ausnahmen

Hinweise

Die arg -Parameters auch null , wenn keine Argumente erforderlich sind.The arg parameter can be null if no arguments are needed.

BeginInvoke Gibt eine DispatcherOperation -Objekt, das verwendet werden kann, um mit dem Delegaten zu interagieren, wenn der Delegat in der Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Die DispatcherOperation zurückgegebenes Objekt BeginInvoke kann auf verschiedene Weise für die Interaktion mit den angegebenen Delegaten verwendet werden:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Ändern der DispatcherPriority des Delegaten wie ausstehende Ausführung in der Ereigniswarteschlange abgerufen.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen den Delegaten aus der Ereigniswarteschlange.Removing the delegate from the event queue.

  • Es wird darauf gewartet, dass der Delegat, der zurückgegeben.Waiting for the delegate to return.

  • Abrufen des Werts, die der Delegat, nachdem sie zurückgegeben ausgeführt wird.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. aus diesem Grund sofort die steuerelementrückgabe an das aufrufende Objekt nach dem sie aufgerufen wird.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPF, nur der Thread, der erstellt eine DispatcherObject können auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Z. B. ein Hintergrundthread, der aus dem Hauptbenutzeroberflächen-Thread, deaktivieren erstellt wurde kann nicht aktualisiert werden den Inhalt einer Button , die im UI-Thread erstellt wurde.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. In der Hintergrundthread die Content-Eigenschaft der Zugriff auf die Button, der Hintergrundthread die Verarbeitung zur delegieren muss die Dispatcher im UI-Thread zugeordnet.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. Dies wird erreicht, indem Sie entweder Invoke oder BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron.Invoke is synchronous and BeginInvoke is asynchronous. Der Vorgang wurde an die Ereigniswarteschlange von der Dispatcher an der angegebenen DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn mehrere BeginInvoke Aufrufe gleichzeitig DispatcherPriority, werden sie in der Reihenfolge der Aufrufe wurden ausgeführt.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Wenn BeginInvoke aufgerufen wird, auf eine Dispatcher , die heruntergefahren wurde, der Status-Eigenschaft des zurückgegebenen DispatcherOperation nastaven NA hodnotu Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Siehe auch

Gilt für: