2017-08-27 13 views
-4

私は視覚的なC#wpfアプリケーションを使用していて、タイマーを最大限に絞りたいと思っています。VS-C#タイマー精度

現在、を使用しています.1ms間隔で呼び出すことができます(はい、私はVS-wpfを使用して1msタイマーを取得できません)。

また、Stopwatchを使用して、約13msのタイマーのパフォーマンスを測定しています。

つの質問:

  1. 64へのx86から​​アプリケーションの変更は、私のタイマーのパフォーマンスが向上させる必要がある場合は?
  2. タイマー間隔を小さくするための迅速な方法があります

おかげで(私はリアルタイムOSにしたいスイッチをいけないと仮定して)!最初の質問へ

+1

タイマー間隔**を下回る** 1ms間隔? –

+0

ここでの回答はどれもあなたに当てはまりますか? https://stackoverflow.com/questions/9228313/most-accurate-timer-in-net –

+0

正確なタイマーが必要なことを最初にやっていることを教えてください。その意図が_smoothアニメーション_の場合は、WinFormsのアプローチを使用するよりも、WPF組み込みの「ストーリーボード」を実際に使用する必要があります – MickyD

答えて

1

回答:いいえ

回答(二両方の質問):

でSystem.Timers.Timerの解決はそうでそれを作成し、システム・クロック(Accurate Windows timer? System.Timers.Timer() is limited to 15 msec参照)と同じですそこから、System.Timers.Timerがイベントを発生させるとき、イベントハンドラは通常ThreadPoolスレッドのとスケジュールされています。そのイベントハンドラが実際にで実行された場合、はスケジューラと状況によって異なります。イベントハンドラがイベントの実際の発生からどれだけ遅れているかを知ることはできません。

Windowsでは細かい分解能で測定が可能です(他の備考を参照してください)。ミリ秒の分解能および決定的な応答時間で正確に実行されるコードを持つことは不可能です。私の意見では、本当にリアルタイムOSが必要です。

+0

私が言ったように、私は1msの精度を達成するつもりはわかりません。しかし、私はビジュアルスタジオタイマーから最高のパフォーマンスを得ることを試みています。 –

+2

「最高のパフォーマンス」はどういう意味ですか?あなたがすでに取得している「13ミリ秒より短い間隔」を意味する場合、答えは「いいえ」です。独自のTimerクラスを記述する場合でも、Timerイベントのスケジューリングによって制限されます。 –

+0

意味は最小のタイマーインターバルですでに可能ですが、短縮しようとする試みは無駄ですか? –