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

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

Dieser Member ist überladen. Klicken Sie auf einen Namen in der Überladungsliste, um vollständige Informationen zu diesem Member sowie zu Syntax, Nutzung und Beispielen zu erhalten.

  Name Beschreibung
Öffentliche Methode Invoke(Action) Führt den angegebenen Action synchron auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke<TResult>(Func<TResult>) Führt den angegebenen Func<TResult> synchron auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(Action, DispatcherPriority) Führt den angegebenen Action synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(Delegate, Object[]) Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(DispatcherPriority, Delegate) Führt den angegebenen Delegaten synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke<TResult>(Func<TResult>, DispatcherPriority) Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(Action, DispatcherPriority, CancellationToken) Führt den angegebenen Action synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(Delegate, TimeSpan, 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.
Öffentliche Methode Invoke(Delegate, DispatcherPriority, 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.
Öffentliche Methode Invoke(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.
Öffentliche Methode Invoke(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.
Öffentliche Methode Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) Führt den angegebenen Action synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(Delegate, TimeSpan, DispatcherPriority, 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.
Öffentliche Methode Invoke(DispatcherPriority, Delegate, Object, 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.
Öffentliche Methode Invoke(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.
Öffentliche Methode Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(DispatcherPriority, TimeSpan, Delegate, Object, 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

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));
}


Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.