Impedir o uso do Dispatcher.Invoke no código WPF

Sou programador web e de back-end por natureza. Normalmente eu tento evitar fazer programas do Windows. Agora eu tenho que fazer um cliente WPF.

Eu tenho uma tarefa em segundo plano que gera um evento sempre. (Está funcionando como um pesquisador e quando os critérios são atendidos, um evento é gerado). Noob como eu, escrevi este código que foi anexado ao evento para atualizar a interface do usuário.

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

Isso abre uma exceção porque não estou no mesmo segmento. Depois de pesquisar no Google, achei que deveria mudar o código com:

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

Isso funciona, mas esse não é o único evento e, portanto, torna meu código horrível feio. Existem maneiras melhores de fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion