none
WPF计时器 RRS feed

  • 问题

  • 我需要一个40毫秒间隔的计时器,但使用DispatcherTimer的设置Interval 40毫秒,与实际的间隔有点差距,基本都是70~80毫秒的,有什么办法解决吗?
    2015年1月5日 7:21

答案

  • 是 System.Timers.Timer 。

    需要同步到UI线程时,使用UI的 Dispatcher.Invoke 方法就可以。间隔的话,需要你测试一下了,我这边没有开发环境,不好意思。


    希望我的答案能帮助更多的人。

    • 已标记为答案 skczjun 2015年1月6日 5:18
    2015年1月6日 3:05

全部回复

  • 如果计时器不涉及界面交互,可以考虑把 DispatcherTimer 换成 Timer,因为 DispatcherTimer 是UI线程执行的,如果触发时UI线程正忙,可能会有延迟。

    希望我的答案能帮助更多的人。

    2015年1月5日 8:50
  • 你说的Timer是这下面的哪个呢?

    1.System.Threading.Timer
    2.System.Timers.Timer
    3.System.Windows.Forms.Timer
    4.System.Web.UI.Timer

    如果我要同步到UI线程的话是否间隔跟DispatcherTimer  也差不多的?

    2015年1月6日 2:53
  • 是 System.Timers.Timer 。

    需要同步到UI线程时,使用UI的 Dispatcher.Invoke 方法就可以。间隔的话,需要你测试一下了,我这边没有开发环境,不好意思。


    希望我的答案能帮助更多的人。

    • 已标记为答案 skczjun 2015年1月6日 5:18
    2015年1月6日 3:05
  • 你说的Timer是这下面的哪个呢?

    1.System.Threading.Timer
    2.System.Timers.Timer
    3.System.Windows.Forms.Timer
    4.System.Web.UI.Timer

    如果我要同步到UI线程的话是否间隔跟DispatcherTimer  也差不多的?

    System.Timers.Timer这个是后台开新线程

    间隔应该是准的

    调用界面元素要用委托


    My Blog:http://sun8134.cnblogs.com

    2015年1月7日 0:03