WPF System.Timer和UI线程

时间:2013-07-15 17:47:52

标签: c# wpf

我需要倒数时间,滴答必须与时间同步。 首先我尝试了DispatcherTimer。它与UI交互得很好,但是它滞后。我发现在两分钟倒计时后差不多5秒。

然后我切换到System.Timers.Timer.This似乎与实时更加同步,但如果我从UI线程捕获的事件中我发现错误。也在Timer Elapsed事件处理程序内我可以也没有与UI元素交互。作为WPF业余爱好者,我的问题是如何使用UI线程来避免这种异常?

1 个答案:

答案 0 :(得分:4)

您可以使用Dispatcher.BeginInvoke()方法。它会将委托安排到UI线程。 Dispatcher是每个控件的属性。

control.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { ... } ));