Verhindern Sie die Verwendung von Dispatcher.Invoke im WPF-Code

Ich bin von Natur aus ein Web- und Backend-Programmierer. Normalerweise versuche ich, Windows-Programme zu vermeiden. Jetzt muss ich einen WPF-Client erstellen.

Ich habe eine Hintergrundaufgabe, die jedes Mal ein Ereignis auslöst. (Es funktioniert wie ein Poller und wenn die Kriterien erfüllt sind, wird ein Ereignis ausgelöst). Noob, wie ich bin, schrieb ich diesen Code, der an das Ereignis angehängt wurde, um die Benutzeroberfläche zu aktualisieren.

    private void IsDisconnectedEvent()
    {
            UserWindow.Visibility = Visibility.Hidden;
            DisconnectWindow.Visibility = Visibility.Visible;
    }

Dies gibt eine Ausnahme, da ich nicht im selben Thread bin. Nach einigem googeln fand ich, dass ich den Code ändern sollte mit:

    private void IsDisconnectedEvent()
    {
        Dispatcher.Invoke(() =>
                          {
                              UserWindow.Visibility = Visibility.Hidden;
                              DisconnectWindow.Visibility = Visibility.Visible;
                          });
    }

Dies funktioniert, aber dies ist nicht das einzige Ereignis und macht meinen Code daher fürchterlich hässlich. Gibt es dafür bessere Möglichkeiten?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage