(0) exportieren Drucken
Alle erweitern

Dispatcher.BeginInvoke-Methode (Delegate, DispatcherPriority, Object[])

Aktualisiert: Juli 2008

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.

Namespace:  System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)

public DispatcherOperation BeginInvoke(
	Delegate method,
	DispatcherPriority priority,
	params Object[] args
)
public DispatcherOperation BeginInvoke(
	Delegate method,
	DispatcherPriority priority,
	Object[] args
)
public function BeginInvoke(
	method : Delegate, 
	priority : DispatcherPriority, 
	... args : Object[]
) : DispatcherOperation
Sie können diese Methoden nicht in XAML verwenden.

Parameter

method
Typ: System.Delegate
Der Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.
priority
Typ: System.Windows.Threading.DispatcherPriority
Die Priorität, relativ zu den anderen anstehenden Operationen in der Dispatcher-Ereigniswarteschlange, mit der die angegebene Methode aufgerufen wird.
args
Typ: System.Object[]
Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen. Dies kann null sein.

Rückgabewert

Typ: System.Windows.Threading.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.

Das DispatcherOperation-Objekt, das von BeginInvoke zurückgegeben wird, kann auf verschiedene Arten für die Interaktion mit dem angegebenen Delegaten verwendet werden. Beispiel:

  • Ändern der DispatcherPriority des Delegaten, während dieser in der Ereigniswarteschlange auf die Ausführung wartet.

  • Entfernen des Delegaten aus der Ereigniswarteschlange.

  • Warten auf die Rückgabe des Delegaten.

  • Abrufen des Werts, den der Delegat nach der Ausführung zurückgibt.

BeginInvoke ist asynchron. Daher kehren Steuerelemente sofort zum aufrufenden Objekt zurück.

In WPF kann nur der Thread auf das Objekt zugreifen, der das betreffende DispatcherObject erstellt hat. Ein Hintergrundthread außerhalb des Haupt-UI-Threads kann beispielsweise nicht den Inhalt eines Button aktualisieren, der dem UI-Thread zugeordnet ist. Um im Hintergrundthread auf die Content-Eigenschaft des Button zugreifen zu können, muss der Hintergrundthread die Arbeit an den Dispatcher delegieren, der dem UI-Thread zugeordnet ist. Dies erreichen Sie entweder mit Invoke oder mit BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Die Operation wird mit der angegebenen DispatcherPriority in die Warteschlange des Dispatcher eingefügt.

Wenn BeginInvoke für einen beendeten Dispatcher aufgerufen wird, wird die Statuseigenschaft der zurückgegebenen DispatcherOperation auf Aborted festgelegt.

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5 SP1, 3.0 SP1

Datum

Versionsgeschichte

Grund

Juli 2008

Thema für neuen Member hinzugefügt.

SP1-Featureänderung.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft