Запретить использование 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;
});
}
Это работает, но это не единственное событие, что делает мой код ужасным. Есть ли лучшие способы сделать это?