100 Hzで加速度計データを記録するWindows Phoneアプリケーションを作成しようとしています。 System.Windows.Threading.DispatcherTimer
そして System.Threading.Timer
記録されたデータを見ると、いずれも実際には100Hzで記録していませんでした。 DispatcherTimer
60〜80Hzを記録し、 Timer
約85〜90Hzで記録する。 50Hzで録音しようとしたときにまだ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);
固定レートで録音していることを確認するにはどうすればよいですか?
回答:
回答№1は1Windows Phone 7 - はそうではありません リアルタイムOS。どのタイマークラスも厳密に正確ではありません。 OSが実際にティックメッセージにサービスを提供すると、タイマーが刻々と変化したことを知らせるようになるまでには、時間がかかります。
簡単なテストを実装しようとする:10ミリ秒ごとに現在の時刻を表示すると、最小のエラーが表示されます。開発者が使用するとき 1
または 5
または 10
間隔のような秒 - これは目立たない。