Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Dispatcher.BeginInvoke-Methode (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.

Namespace:  System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)
[BrowsableAttribute(false)]
public DispatcherOperation BeginInvoke(
	DispatcherPriority priority,
	Delegate method,
	Object arg,
	params Object[] args
)

Parameter

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.
method
Typ: System.Delegate
Ein Delegat zu einer Methode, die mehrere Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.
arg
Typ: System.Object
Das Objekt, das als Argument an die angegebene Methode übergeben wird.
args
Typ: System.Object[]
Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen.

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 Dispatcher-Warteschlange steht.
Ausnahme Bedingung
ArgumentNullException

method hat den Wert null.

InvalidEnumArgumentException

DispatcherPriority ist keine gültige Priorität.

Der arg-Parameter kann null sein, wenn keine Argumente erforderlich sind.

BeginInvoke gibt ein DispatcherOperation-Objekt zurück, das für die Interaktion mit dem Delegaten verwendet werden kann, während sich der Delegat in der Ereigniswarteschlange befindet.

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 wird durch die Verwendung von Invoke oder BeginInvoke erreicht. Invoke ist synchron und BeginInvoke asynchron. Die Operation wird mit der angegebenen DispatcherPriority in die Warteschlange des Dispatcher eingefügt.

Wenn mehrere BeginInvoke-Aufrufe mit derselben DispatcherPriority erfolgen, werden sie in der Reihenfolge des Aufrufs verarbeitet.

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

.NET Framework

Unterstützt in: 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ