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

Dispatcher.Invoke-Methode (DispatcherPriority, Delegate)

Führt den angegebenen Delegaten synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Namespace:  System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)
[BrowsableAttribute(false)]
public Object Invoke(
	DispatcherPriority priority,
	Delegate method
)

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 keine Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

Rückgabewert

Typ: System.Object
Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.
AusnahmeBedingung
ArgumentException

priority ist gleich Inactive.

InvalidEnumArgumentException

priority ist keine gültige Priorität.

ArgumentNullException

method ist null.

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.

Invoke ist eine synchrone Operation. Daher wird die Steuerung erst mit Rückgabe des Rückrufs an das aufrufende Objekt zurückgegeben.

Im folgenden Beispiel wird ein Delegat auf einem Dispatcher mit Normal platziert. Hierzu wird Invoke aufgerufen.


// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.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-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.