在我的WPF应用程序中,我使用3个不同的DispatcherTimers。WPF Dispatchertimer延迟反应/冻结
- 一个是用于显示当前时间
- 一个是是用于运行DB查询每5秒
- 自定义按钮第三个刷新的值每1秒
当我的程序正在运行,有很多延迟/冻结。 例如,时间开始正确滴答,但突然间,数值冻结,冻结后时间增加+3秒。
我正在通过我的整个应用程序获取此行为。 用几个定时器解决这个问题的正确方法是什么?
编辑:
我有问题,从System.Timers命名空间的计时器更换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组件都需要这个。”
此致敬礼。
你的意思是与编组完全一样吗?从来没有真正使用线程在真正的程序之前。所以我可以用其他类型的计时器完全替代我的Dispatcher计时器功能? – Jackz 2012-04-16 11:41:55
事件将在不同的线程上触发,因此您需要在UI线程上执行UI。那就是编组 – 2012-04-16 14:19:19