是否有一个系统事件我可以用.NET挂钩进行时间更新?

时间:2010-03-03 22:11:59

标签: c# time timer system

我正在构建一个需要每秒触发事件的应用程序,但它需要处于每秒的顶部。几秒钟之间的射击不够好。我不认为计时器是可以接受的,因为虽然我可以将它设置为每秒触发,但我不能告诉它从第二个顶部开始。它可能会随着时间的推移略微漂移。

是否可能会挂起系统级事件,系统时间会更新?

关于如何实现这一目标的任何其他想法?

1 个答案:

答案 0 :(得分:2)

我之前在moble设备上取得了巨大的成功。这种方法还可以消除漂移(抖动)。

  1. 将计时器设置为较小的间隔。
  2. 节省时间。
  3. 点击活动,
  4. 将当前时间与节省的时间进行比较。
  5. 如果时间不同(秒数改变),
    1. 然后做点什么
    2. 并节省时间
  6. 在我的具体情况下,我的计时器间隔是100毫秒,所以我可以在100毫秒内捕获第二个变化。您将间隔设置为10毫秒。

    根据您的需要,可能会考虑使用基于服务器的计时器。

    [update]将时间存储为Integer(tick count)而不是DateTime更快。在初始化时,循环直到第二次更改,然后存储刻度计数(Environment.TickCounts)。当前的滴答计数减去保存的滴答计数大于1000时,您知道已经过了一秒钟。