Dispatcher-Eigenschaft
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

DependencyObject.Dispatcher Property

Ruft den CoreDispatcher ab, der diesem Objekt zugeordnet ist.

Syntax


public CoreDispatcher Dispatcher { get; }

Eigenschaftswert

Typ: CoreDispatcher

Der CoreDispatcher, dem dieses Objekt zugeordnet ist.

Hinweise

DependencyObject muss auf einem UI-Thread erstellt werden. Die Dispatcher-Eigenschaft stellt das CoreDispatcher-Element bereit, das verwendet werden kann, um Aufrufe von anderen Threads mit RunAsync und einer awaitable-Funktion zu marshallen. Weitere Informationen zu awaitable Funktionen finden Sie unter Schnellstart: Aufrufen asynchroner APIs.

Diese Dispatcher-Eigenschaft ruft den CoreDispatcher ab, der dem UI-Thread der App zugeordnet ist. Sie können diese Methode in jedem DependencyObject aufrufen, das Teil der Benutzeroberfläche ist. Sie können auch von einem DependencyObject aufrufen, das eine Quelle in einem Datenbindungsszenario ist.

Window.Dispatcher verweist auch auf CoreDispatcher, der dem UI-Thread zugeordnet ist. Window.Dispatcher entspricht im Grunde nur einem Wrapper um CoreWindow.Dispatcher, sodass eine Window-Klasse einfachen Zugriff darauf hat.

Vorsicht  Die Verbindung für einen Dispatcher-Wert ist in einer Entwurfszeitansicht nicht verfügbar. Dies kann Probleme verursachen, wenn Sie ein benutzerdefiniertes Steuerelement erstellt haben, das Dispatcher-Werte verwendet und auf diesen Code von einer Entwurfszeitumgebung durch Codepfade zugegriffen wird, die eine Entwurfsansicht verwenden, wie Konstruktoren und Loaded-Handler. Wenn Sie ein benutzerdefiniertes Steuerelement schreiben und dieses Problem auftritt, sollten Sie eine überwachte Bedingung einführen und beispielsweise diesen Code nicht aufrufen, wenn DesignModeEnabled den Wert true hat.

Beispiele

Dieses Beispiel zeigt die Verwendung von Dispatcher für das implizite this einer CodeBehind-Datei für eine Page. Dieses Beispiel verwendet einen Lambda-Ausdruck zum Hinzufügen der DispatchedHandler-Implementierung. Der Handler selbst behandelt das Accelerometer.ReadingChanged- Ereignis, das im UI-Thread nicht ausgeführt wird.


        private async void ReadingChanged(object sender, AccelerometerReadingChangedEventArgs e)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                AccelerometerReading reading = e.Reading;
                ScenarioOutput_X.Text = String.Format("{0,5:0.00}", reading.AccelerationX);
                ScenarioOutput_Y.Text = String.Format("{0,5:0.00}", reading.AccelerationY);
                ScenarioOutput_Z.Text = String.Format("{0,5:0.00}", reading.AccelerationZ);
            });
        }

Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

DependencyObject

 

 

Anzeigen:
© 2017 Microsoft