.NET Framework-Klassenbibliothek
Dispatcher..::.Invoke-Methode

Aktualisiert: November 2007

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

Überladungsliste

  NameBeschreibung
ms604732.pubmethod(de-de,VS.90).gifInvoke(DispatcherPriority, Delegate) Führt den angegebenen Delegaten synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(Delegate, array<Object>[]()[]) Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(DispatcherPriority, Delegate, Object) Führt den angegebenen Delegaten mit der angegebenen Priorität und dem angegebenen Argument synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(DispatcherPriority, TimeSpan, Delegate) Führt den angegebenen Delegaten synchron mit der angegebenen Priorität und dem angegebenen Timeoutwert auf dem Thread aus, in dem der Dispatcher erstellt wurde.
ms604732.pubmethod(de-de,VS.90).gifInvoke(Delegate, TimeSpan, array<Object>[]()[]) Führt den angegebenen Delegaten in der angegebenen Zeitspanne mit der angegebenen Priorität und den angegebenen Argumenten synchron für den Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(Delegate, DispatcherPriority, array<Object>[]()[]) Führt den angegebenen Delegaten mit der angegebenen Priorität und den angegebenen Argumenten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(DispatcherPriority, Delegate, Object, array<Object>[]()[]) Führt den angegebenen Delegaten mit der angegebenen Priorität und den angegebenen Argumenten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(DispatcherPriority, TimeSpan, Delegate, Object) Führt den angegebenen Delegaten mit der angegebenen Priorität und dem angegebenen Argument synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(Delegate, TimeSpan, DispatcherPriority, array<Object>[]()[]) Führt den angegebenen Delegaten in der angegebenen Zeitspanne mit der angegebenen Priorität und den angegebenen Argumenten synchron für den Thread aus, dem der Dispatcher zugeordnet ist.
ms604732.pubmethod(de-de,VS.90).gifInvoke(DispatcherPriority, TimeSpan, Delegate, Object, array<Object>[]()[]) Führt den angegebenen Delegaten mit der angegebenen Priorität und den angegebenen Argumenten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.
Zum Seitenanfang
Hinweise

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.

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

Beispiele

Im folgenden Beispiel wird ein Delegat auf einem Dispatcher mit Normal platziert. Hierzu wird Invoke aufgerufen. Das vollständige Quellcodebeispiel finden Sie unter Beispiel zum Deaktivieren der Befehlsquelle über den Verteilerzeitgeber.

C#
// 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));
}
Siehe auch

Referenz

Tags :


Page view tracker