0

加速度計のデータを 100 Hz で記録する Windows Phone アプリケーションを作成しようとしています。System.Windows.Threading.DispatcherTimerと の両方を試してみましたSystem.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 -リアルタイム OSではありません。厳密に正確なタイマー クラスはありません。少なくともこれだけ待ちたいと言っているだけです。すべてが起動するまでにはある程度の時間がかかり、OS が実際にティック メッセージを処理するようになると、タイマーがティックしたことが通知されます。
簡単なテストを実装してみてください。現在の時刻を 10 ミリ秒ごとに出力すると、最小のエラーが表示されます。開発者が間隔のように1or5または10seconds を使用する場合、これは目立ちません。

于 2013-05-02T12:39:58.120 に答える