none
DispatcherTimer计时器间隔事件不触发 RRS feed

  • 问题

  • 我在界面Canvas上启动的了一个DispatcherTimer,捕获Canvas的OnMouseMove()鼠标事件,当我使用鼠标进行非常频繁的操作时,时钟事件会丢失很多,即假如我设定DispatcherTimer的间隔为30毫秒时,如果不进行鼠标操作,每次都差不多30秒就触发一次时钟回调,但快速来回移动时,很少触发时钟事件,该如何解决?
    2014年3月5日 10:52

答案

  • DispatcherTimer是在UI线程上运行的,当UI线程忙于处理其他操作时,DispatherTimer的事件触发会延迟,建议采用其他的Timer,比如System.Timers.Timer。
    • 已标记为答案 skczjun 2014年3月7日 1:38
    2014年3月5日 17:07

全部回复

  • 已找到原因是在OnMouseMove()里面处理花费时间过长,有什么办法实现定时触发吗?
    2014年3月5日 11:19
  • DispatcherTimer是在UI线程上运行的,当UI线程忙于处理其他操作时,DispatherTimer的事件触发会延迟,建议采用其他的Timer,比如System.Timers.Timer。
    • 已标记为答案 skczjun 2014年3月7日 1:38
    2014年3月5日 17:07