在我的 WPF 应用程序中,我使用 3 个不同的 DispatcherTimers。
- 一种是显示当前时间
- 一种是每 5 秒运行一次数据库查询
- 第三个每 1 秒刷新一次自定义按钮的值
当我的程序运行时,会有很多延迟/冻结。例如,时间开始正确计时,但值突然冻结,冻结后时间例如增加 +3 秒。
我在整个应用程序中都得到了这种行为。用几个计时器解决这个问题的正确方法是什么?
编辑:
我在用 System.Timers 命名空间中的 Timer 替换 DispatcherTimer 时遇到问题。
//new code with timer
timerW = new Timer();
timerW.Elapsed += new ElapsedEventHandler(timerWegingen_Tick);
timerW.Interval = 5000;
timerW.Start();
//OLD Working Code
timerW = new DispatcherTimer();
timerW.Tick += new EventHandler(timerWegingen_Tick);
timerW.Interval = new TimeSpan(0, 0,5);
timerW.Start();
错误:“调用线程必须是 STA,因为许多 UI 组件都需要这个。”
最好的祝福。