Dispatcher.BeginInvoke Methode

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[])

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)

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[])

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)

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[])

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 WPFWPFkann nur der Thread, der eine DispatcherObject erstellt hat, auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Beispielsweise kann ein Hintergrund Thread, der aus dem Hauptbenutzer Oberflächen Thread ausgelöst wird, den Inhalt einer Button nicht aktualisieren, 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. Damit der Hintergrund Thread auf die Content-Eigenschaft des Buttonzugreifen kann, muss der Hintergrund Thread die Arbeit an die dem UI-Thread zugeordnete Dispatcher delegieren.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 erfolgt mithilfe 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 wird der Ereignis Warteschlange der Dispatcher am angegebenen DispatcherPriorityhinzugefügt.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvoke ist asynchron. Daher wird die Steuerung sofort an das aufrufenden Objekt zurückgegeben, nachdem es aufgerufen wurde.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvoke gibt ein DispatcherOperation Objekt zurück, das für die Interaktion mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das von BeginInvoke zurückgegebene DispatcherOperation Objekt kann auf verschiedene Arten verwendet werden, um mit dem angegebenen Delegaten zu interagieren, z. b.: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, da die Ausführung in der Ereignis Warteschlange ausstehend ist.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen des Delegaten aus der Ereignis Warteschlange.Removing the delegate from the event queue.

  • Warten, bis der Delegat zurückgegeben wird.Waiting for the delegate to return.

  • Abrufen des Werts, den der Delegat zurückgibt, nachdem er ausgeführt wurde.Obtaining the value that the delegate returns after it is executed.

Wenn mehrere BeginInvoke Aufrufe an derselben DispatcherPriorityerfolgen, werden Sie in der Reihenfolge ausgeführt, in der die Aufrufe durchgeführt wurden.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Wenn BeginInvoke für eine Dispatcher aufgerufen wird, die heruntergefahren wurde, wird die Eigenschaft Status der zurückgegebenen DispatcherOperation auf Abortedfestgelegt.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[])

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

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

Das von BeginInvoke zurückgegebene DispatcherOperation Objekt kann auf verschiedene Arten verwendet werden, um mit dem angegebenen Delegaten zu interagieren, z. b.: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, da die Ausführung in der Ereignis Warteschlange ausstehend ist.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen des Delegaten aus der Ereignis Warteschlange.Removing the delegate from the event queue.

  • Warten, bis der Delegat zurückgegeben wird.Waiting for the delegate to return.

  • Abrufen des Werts, den der Delegat zurückgibt, nachdem er ausgeführt wurde.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. Daher wird die Steuerung sofort an das aufrufenden Objekt zurückgegeben, nachdem es aufgerufen wurde.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPFkann nur der Thread, der eine DispatcherObject erstellt hat, auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Beispielsweise kann ein Hintergrund Thread, der aus dem Hauptbenutzer Oberflächen Thread ausgelöst wird, den Inhalt einer Button nicht aktualisieren, 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. Damit der Hintergrund Thread auf die Content-Eigenschaft des Buttonzugreifen kann, muss der Hintergrund Thread die Arbeit an die dem UI-Thread zugeordnete Dispatcher delegieren.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 erfolgt mithilfe 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 wird der Ereignis Warteschlange der Dispatcher am angegebenen DispatcherPriorityhinzugefügt.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn BeginInvoke für eine Dispatcher aufgerufen wird, die heruntergefahren wurde, wird die Eigenschaft Status der zurückgegebenen DispatcherOperation auf Abortedfestgelegt.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)

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

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

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.

Attribute

Ausnahmen

method ist null.method is null.

priority ist kein gültiger DispatcherPriority.priority is not a valid DispatcherPriority.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie einen Vorgang auf einem Dispatcherplatzieren.The following example shows how to place an operation onto a Dispatcher. Den vollständigen Quellcode dieses Beispiels finden Sie unter Beispiel für Single Thread-Anwendung mit langer Berechnung.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

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

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

Als nächstes wird BeginInvoke(DispatcherPriority, Delegate) aufgerufen.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Da jede DispatcherObject über eine Eigenschaft verfügt, die die Dispatcher zurückgibt, der Sie zugeordnet ist, wird die gewünschte Dispatcher durch Abfragen der DispatcherObjectabgerufen, 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) nimmt zwei Parameter an: die Priorität, die auf DispatcherPriority.Normalfestgelegt ist, und der Rückruf, der über eine Instanz des Delegaten NextPrimeDelegateübermittelt wird.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 an derselben DispatcherPriorityerfolgen, werden Sie in der Reihenfolge ausgeführt, in der die Aufrufe durchgeführt wurden.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvoke gibt ein DispatcherOperation Objekt zurück, das für die Interaktion mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das von BeginInvoke zurückgegebene DispatcherOperation Objekt kann auf verschiedene Arten verwendet werden, um mit dem angegebenen Delegaten zu interagieren, z. b.: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, da die Ausführung in der Ereignis Warteschlange ausstehend ist.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen des Delegaten aus der Ereignis Warteschlange.Removing the delegate from the event queue.

  • Warten, bis der Delegat zurückgegeben wird.Waiting for the delegate to return.

  • Abrufen des Werts, den der Delegat zurückgibt, nachdem er ausgeführt wurde.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. Daher wird die Steuerung sofort an das aufrufenden Objekt zurückgegeben, nachdem es aufgerufen wurde.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPFkann nur der Thread, der eine DispatcherObject erstellt hat, auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Beispielsweise kann ein Hintergrund Thread, der aus dem Hauptbenutzer Oberflächen Thread ausgelöst wird, den Inhalt einer Button nicht aktualisieren, 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. Damit der Hintergrund Thread auf die Content-Eigenschaft des Buttonzugreifen kann, muss der Hintergrund Thread die Arbeit an die dem UI-Thread zugeordnete Dispatcher delegieren.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 erfolgt mithilfe 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 wird der Ereignis Warteschlange der Dispatcher am angegebenen DispatcherPriorityhinzugefügt.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn BeginInvoke für eine Dispatcher aufgerufen wird, die heruntergefahren wurde, wird die Eigenschaft Status der zurückgegebenen DispatcherOperation auf Abortedfestgelegt.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[])

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

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

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

Das von BeginInvoke zurückgegebene DispatcherOperation Objekt kann auf verschiedene Arten verwendet werden, um mit dem angegebenen Delegaten zu interagieren, z. b.: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, da die Ausführung in der Ereignis Warteschlange ausstehend ist.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen des Delegaten aus der Ereignis Warteschlange.Removing the delegate from the event queue.

  • Warten, bis der Delegat zurückgegeben wird.Waiting for the delegate to return.

  • Abrufen des Werts, den der Delegat zurückgibt, nachdem er ausgeführt wurde.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. Daher wird die Steuerung sofort an das aufrufenden Objekt zurückgegeben, nachdem es aufgerufen wurde.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPFkann nur der Thread, der eine DispatcherObject erstellt hat, auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Beispielsweise kann ein Hintergrund Thread, der aus dem Hauptbenutzer Oberflächen Thread ausgelöst wird, den Inhalt einer Button nicht aktualisieren, 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. Damit der Hintergrund Thread auf die Content-Eigenschaft des Buttonzugreifen kann, muss der Hintergrund Thread die Arbeit an die dem UI-Thread zugeordnete Dispatcher delegieren.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 erfolgt mithilfe 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 wird der Ereignis Warteschlange der Dispatcher am angegebenen DispatcherPriorityhinzugefügt.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn BeginInvoke für eine Dispatcher aufgerufen wird, die heruntergefahren wurde, wird die Eigenschaft Status der zurückgegebenen DispatcherOperation auf Abortedfestgelegt.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)

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

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

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

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.

Attribute

Ausnahmen

method ist null.method is null.

priority ist kein gültiger DispatcherPriority.priority is not a valid DispatcherPriority.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie einen Vorgang auf einem Dispatcherplatzieren.The following example shows how to place an operation onto a Dispatcher.

Zuerst wird ein Delegat erstellt, der ein Argument annimmt (in diesem Fall eine Zeichenfolge).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 wird BeginInvoke(DispatcherPriority, Delegate, Object) aufgerufen.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Da jede DispatcherObject über eine Eigenschaft verfügt, die die Dispatcher zurückgibt, der Sie zugeordnet ist, wird die gewünschte Dispatcher durch Abfragen der DispatcherObjectabgerufen, 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 BeginInvoke(DispatcherPriority, Delegate, Object)-Aufrufe nimmt drei Parameter an: die Priorität, die auf DispatcherPriority.Normalfestgelegt ist. der Rückruf, der durch eine Instanz des Delegaten übermittelt wird OneArgDelegate; und eine Zeichenfolge mit dem Namen weather, die das Argument für den Rückruf ist.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 können null werden, wenn keine Argumente benötigt werden.Arg can be null if no arguments are needed.

BeginInvoke gibt ein DispatcherOperation Objekt zurück, das für die Interaktion mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das von BeginInvoke zurückgegebene DispatcherOperation Objekt kann auf verschiedene Arten verwendet werden, um mit dem angegebenen Delegaten zu interagieren, z. b.: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, da die Ausführung in der Ereignis Warteschlange ausstehend ist.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen des Delegaten aus der Ereignis Warteschlange.Removing the delegate from the event queue.

  • Warten, bis der Delegat zurückgegeben wird.Waiting for the delegate to return.

  • Abrufen des Werts, den der Delegat zurückgibt, nachdem er ausgeführt wurde.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. Daher wird die Steuerung sofort an das aufrufenden Objekt zurückgegeben, nachdem es aufgerufen wurde.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPFkann nur der Thread, der eine DispatcherObject erstellt hat, auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Beispielsweise kann ein Hintergrund Thread, der aus dem Hauptbenutzer Oberflächen Thread ausgelöst wird, den Inhalt einer Button nicht aktualisieren, 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. Damit der Hintergrund Thread auf die Content-Eigenschaft des Buttonzugreifen kann, muss der Hintergrund Thread die Arbeit an die dem UI-Thread zugeordnete Dispatcher delegieren.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 erfolgt mithilfe 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 wird der Ereignis Warteschlange der Dispatcher am angegebenen DispatcherPriorityhinzugefügt.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn mehrere BeginInvoke Aufrufe an derselben DispatcherPriorityerfolgen, werden Sie in der Reihenfolge ausgeführt, in der die Aufrufe durchgeführt wurden.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Wenn BeginInvoke für eine Dispatcher aufgerufen wird, die heruntergefahren wurde, wird die Eigenschaft Status der zurückgegebenen DispatcherOperation auf Abortedfestgelegt.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[])

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

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

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

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.

Attribute

Ausnahmen

method ist null.method is null.

DispatcherPriority ist keine gültige Priorität.DispatcherPriority is not a valid priority.

Hinweise

Der arg-Parameter kann null werden, wenn keine Argumente benötigt werden.The arg parameter can be null if no arguments are needed.

BeginInvoke gibt ein DispatcherOperation Objekt zurück, das für die Interaktion mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindet.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das von BeginInvoke zurückgegebene DispatcherOperation Objekt kann auf verschiedene Arten verwendet werden, um mit dem angegebenen Delegaten zu interagieren, z. b.: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, da die Ausführung in der Ereignis Warteschlange ausstehend ist.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Entfernen des Delegaten aus der Ereignis Warteschlange.Removing the delegate from the event queue.

  • Warten, bis der Delegat zurückgegeben wird.Waiting for the delegate to return.

  • Abrufen des Werts, den der Delegat zurückgibt, nachdem er ausgeführt wurde.Obtaining the value that the delegate returns after it is executed.

BeginInvoke ist asynchron. Daher wird die Steuerung sofort an das aufrufenden Objekt zurückgegeben, nachdem es aufgerufen wurde.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

In WPFWPFkann nur der Thread, der eine DispatcherObject erstellt hat, auf dieses Objekt zugreifen.In WPFWPF, only the thread that created a DispatcherObject may access that object. Beispielsweise kann ein Hintergrund Thread, der aus dem Hauptbenutzer Oberflächen Thread ausgelöst wird, den Inhalt einer Button nicht aktualisieren, 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. Damit der Hintergrund Thread auf die Content-Eigenschaft des Buttonzugreifen kann, muss der Hintergrund Thread die Arbeit an die dem UI-Thread zugeordnete Dispatcher delegieren.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 erfolgt mithilfe 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 wird der Ereignis Warteschlange der Dispatcher am angegebenen DispatcherPriorityhinzugefügt.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn mehrere BeginInvoke Aufrufe an derselben DispatcherPriorityerfolgen, werden Sie in der Reihenfolge ausgeführt, in der die Aufrufe durchgeführt wurden.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Wenn BeginInvoke für eine Dispatcher aufgerufen wird, die heruntergefahren wurde, wird die Eigenschaft Status der zurückgegebenen DispatcherOperation auf Abortedfestgelegt.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: