0

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

对于DispatcherTimer

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

对于Timer

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

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

4

1 回答 1

1

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

于 2013-05-02T12:39:58.120 回答