Запретить использование Dispatcher.Invoke в коде WPF

Я по натуре веб-программист и программист. Обычно я стараюсь избегать создания программ для Windows. Теперь я должен сделать клиент WPF.

У меня есть фоновое задание, которое вызывает событие каждый раз. (Он работает как опросчик, и когда критерии удовлетворяются, возникает событие). Нуб, как я, я написал этот код, который был прикреплен к событию, чтобы обновить пользовательский интерфейс.

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

Это дает исключение, потому что я не в той же теме. После некоторого поиска в Google я обнаружил, что должен изменить код:

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

Это работает, но это не единственное событие, что делает мой код ужасным. Есть ли лучшие способы сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос