如何确保固定间隔的定时器记录?

时间:2013-05-02 11:17:22

标签: c# windows-phone-7

我正在尝试创建一个以100 Hz记录加速度计数据的Windows Phone应用程序。我试用了System.Windows.Threading.DispatcherTimerSystem.Threading.Timer,但是查看记录的数据,实际上都没有以100 Hz的速度进行录制。 DispatcherTimer记录60-80赫兹,而Timer记录大约85-90赫兹。我不认为问题是手机无法处理它,因为当我尝试以50赫兹录音时,它仍然落后于只有40+赫兹。以下是我的代码片段:

DispatcherTimer

timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(10);
timer.Tick += new EventHandler(timer_Tick);

Timer

timer = new Timer(timer_Tick, null, 0, 10);

如何确保以固定的速率间隔进行录制?

1 个答案:

答案 0 :(得分:1)

Windows Phone 7 - 不是real-time OS。没有一个计时器类是完全精确的。所有你这样做,说你想等至少这么久。一切都需要花费一些时间才能触发,并且一旦操作系统到达实际服务于滴答消息,您最终会通知计时器已经勾选。
尝试实现简单测试:每10毫秒打印当前时间,您可以看到最小错误。当开发人员使用1510秒等间隔时 - 这是不明显的。