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 WPF kann nur der Thread, der einen erstellt hat, auf DispatcherObject dieses Objekt zugreifen.In WPF, 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 eines nicht aktualisieren Button , der 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 von zugreifen Button kann, muss der Hintergrund Thread die Arbeit an die Dispatcher mit dem UI-Thread zugeordnete 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 wird mithilfe von oder erreicht Invoke 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 von Dispatcher am angegebenen hinzugefügt DispatcherPriority .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 zum interagieren mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindetBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das DispatcherOperation von zurückgegebene-Objekt BeginInvoke 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 des Delegaten, DispatcherPriority während 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 gleichzeitig durchgeführt werden DispatcherPriority , 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 einen aufgerufen wird Dispatcher , der heruntergefahren wurde, wird die Status-Eigenschaft des zurückgegebenen DispatcherOperation auf festgelegt 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[])

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

DispatcherOperation

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 DispatcherOperation von zurückgegebene-Objekt BeginInvoke 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 des Delegaten, DispatcherPriority während 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 WPF kann nur der Thread, der einen erstellt hat, auf DispatcherObject dieses Objekt zugreifen.In WPF, 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 eines nicht aktualisieren Button , der 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 von zugreifen Button kann, muss der Hintergrund Thread die Arbeit an die Dispatcher mit dem UI-Thread zugeordnete 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 wird mithilfe von oder erreicht Invoke 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 von Dispatcher am angegebenen hinzugefügt DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

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

Gilt für:

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);
[<System.ComponentModel.Browsable(false)>]
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 ausstehenden Vorgängen in der Dispatcher Ereignis Warteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, with which 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

DispatcherOperation

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 platzieren Dispatcher .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()

Anschließend BeginInvoke(DispatcherPriority, Delegate) wird aufgerufen.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Da jeder DispatcherObject über eine-Eigenschaft verfügt, die das-Objekt zurückgibt Dispatcher , das ihm zugeordnet ist, wird das gewünschte Dispatcher abgerufen, indem das abgerufen wird DispatcherObject , in diesem Fall ein mit dem Button 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) erfordert zwei Parameter: die Priorität, die auf festgelegt ist, DispatcherPriority.Normal und der Rückruf, der über eine Instanz des Delegaten übermittelt 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 durchgeführt werden DispatcherPriority , 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 zum interagieren mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindetBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das DispatcherOperation von zurückgegebene-Objekt BeginInvoke 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 des Delegaten, DispatcherPriority während 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 WPF kann nur der Thread, der einen erstellt hat, auf DispatcherObject dieses Objekt zugreifen.In WPF, 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 eines nicht aktualisieren Button , der 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 von zugreifen Button kann, muss der Hintergrund Thread die Arbeit an die Dispatcher mit dem UI-Thread zugeordnete 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 wird mithilfe von oder erreicht Invoke 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 von Dispatcher am angegebenen hinzugefügt DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

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

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 ausstehenden Vorgängen in der Dispatcher Ereignis Warteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, with which 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

DispatcherOperation

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 DispatcherOperation von zurückgegebene-Objekt BeginInvoke 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 des Delegaten, DispatcherPriority während 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 WPF kann nur der Thread, der einen erstellt hat, auf DispatcherObject dieses Objekt zugreifen.In WPF, 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 eines nicht aktualisieren Button , der 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 von zugreifen Button kann, muss der Hintergrund Thread die Arbeit an die Dispatcher mit dem UI-Thread zugeordnete 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 wird mithilfe von oder erreicht Invoke 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 von Dispatcher am angegebenen hinzugefügt DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

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

Gilt für:

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);
[<System.ComponentModel.Browsable(false)>]
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 ausstehenden Vorgängen in der Dispatcher Ereignis Warteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, with which 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

DispatcherOperation

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 platzieren Dispatcher .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)

Anschließend BeginInvoke(DispatcherPriority, Delegate, Object) wird aufgerufen.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Da jeder DispatcherObject über eine-Eigenschaft verfügt, die das-Objekt zurückgibt Dispatcher , das ihm zugeordnet ist, wird das gewünschte Dispatcher abgerufen, indem das abgerufen wird DispatcherObject , in diesem Fall ein mit dem Grid 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) erfordert drei Parameter: die Priorität, die auf festgelegt ist DispatcherPriority.Normal ; 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 kann sein, null Wenn keine Argumente benötigt werden.arg can be null if no arguments are needed.

BeginInvoke Gibt ein- DispatcherOperation Objekt zurück, das zum interagieren mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindetBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das DispatcherOperation von zurückgegebene-Objekt BeginInvoke 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 des Delegaten, DispatcherPriority während 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 WPF kann nur der Thread, der einen erstellt hat, auf DispatcherObject dieses Objekt zugreifen.In WPF, 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 eines nicht aktualisieren Button , der 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 von zugreifen Button kann, muss der Hintergrund Thread die Arbeit an die Dispatcher mit dem UI-Thread zugeordnete 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 wird mithilfe von oder erreicht Invoke 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 von Dispatcher am angegebenen hinzugefügt DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn mehrere BeginInvoke Aufrufe gleichzeitig durchgeführt werden DispatcherPriority , 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 einen aufgerufen wird Dispatcher , der heruntergefahren wurde, wird die Status-Eigenschaft des zurückgegebenen DispatcherOperation auf festgelegt 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:

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);
[<System.ComponentModel.Browsable(false)>]
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 ausstehenden Vorgängen in der Dispatcher Ereignis Warteschlange, mit der die angegebene Methode aufgerufen wird.The priority, relative to the other pending operations in the Dispatcher event queue, with which 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

DispatcherOperation

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 sein, null 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 zum interagieren mit dem Delegaten verwendet werden kann, wenn sich der Delegat in der Ereignis Warteschlange befindetBeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

Das DispatcherOperation von zurückgegebene-Objekt BeginInvoke 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 des Delegaten, DispatcherPriority während 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 WPF kann nur der Thread, der einen erstellt hat, auf DispatcherObject dieses Objekt zugreifen.In WPF, 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 eines nicht aktualisieren Button , der 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 von zugreifen Button kann, muss der Hintergrund Thread die Arbeit an die Dispatcher mit dem UI-Thread zugeordnete 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 wird mithilfe von oder erreicht Invoke 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 von Dispatcher am angegebenen hinzugefügt DispatcherPriority .The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Wenn mehrere BeginInvoke Aufrufe gleichzeitig durchgeführt werden DispatcherPriority , 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 einen aufgerufen wird Dispatcher , der heruntergefahren wurde, wird die Status-Eigenschaft des zurückgegebenen DispatcherOperation auf festgelegt 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: