2013-05-02 105 views
0

我正试图创建一个Windows手机应用程序,记录加速度计数据在100赫兹。我试用了System.Windows.Threading.DispatcherTimerSystem.Threading.Timer,但是查看记录的数据,实际上都没有以100Hz记录。 DispatcherTimer记录60-80Hz,而Timer记录在85-90Hz左右。我不认为问题在于手机无法处理它,因为当我尝试以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

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

相关问题