4

我需要倒计时,并且滴答声必须与时间同步。首先我尝试了 DispatcherTimer。它与 UI 交互良好,但滞后。我发现倒计时两分钟后滞后了近 5 秒。

然后我切换到 System.Timers.Timer。这似乎与实时更同步,但如果我从中触发事件,这些事件被 UI 线程捕获,我会收到错误。也在 Timer Elapsed 事件处理程序中,我无法交互也有 UI 元素。作为 WPF 业余爱好者,我的问题是如何将它与 UI 线程一起使用以避免这种异常情况?

4

1 回答 1

4

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

control.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { ... } ));
于 2013-07-15T17:51:06.550 回答