Как открыть новое окно из события таймера в WPF
Я пытаюсь показать новое окно, если выполняются определенные условия, которые периодически проверяются с помощью System.Timers.Timer
,
Я очень новичок в WPF, но из того, что я прочитал из моего предыдущего вопроса, диспетчеры используют поток пользовательского интерфейса и подходят для компонентов пользовательского интерфейса, тогда как событие System.Timers.Timer запускается в потоке потоков. Ранее я выполнял это с помощью диспетчера, но из-за этого моя программа перестала отвечать при попытке выйти.
Понимая, что сообщение об ошибке: "The calling thread must be STA, because many UI components require this."
вероятно, ссылается на тот факт, что я не могу открыть новое окно, используя мой System.Timers.Timer, я попытался сделать следующее:
private void timer1_Tick(object sender, EventArgs e)
{
//... other timer functions
if(conditions are met)
{
ShowNewWindow();
}
}
private static void ShowNewWindow()
{
NewWindow nw = new NewWindow();
nw.Show();
}
Это приводит к тому же сообщению об ошибке. Нужно ли использовать другой тип таймера?