1. ホーム
  2. c#

Stopwatchはプロダクションコードで使用できますか?

2023-10-17 16:21:41

質問

私は正確なタイマーを必要とし、DateTime.Nowは十分に正確ではないようです。私が読んだ説明から、System.Diagnostics.Stopwatchはまさに私が望むもののようです。

しかし、私には恐怖症があります。実際の生産コードで System.Diagnostics からの何かを使用することに神経質になっています。(私は、Asserts と PrintLns などでデバッグのために広範囲に使用しますが、実稼働用のものにはまだ使用したことがありません。) 私は単に、System.Diagnostics を使用しようとしているわけではありません。単にタイマーを使って関数をベンチマークするのではなく、私のアプリには実際のタイマーが必要なのです。私は別のフォーラムで、System.Diagnostics.StopWatchはベンチマーク用であり、小売コードでは使用すべきではないと読みましたが、特に理由はありませんでした。これは正しいのでしょうか、それとも私(とそのアドバイスを投稿した人)はSystem.Diagnosticsについてあまりにも閉鎖的な考えを持っているのでしょうか?つまり、System.Diagnostics.Stopwatchをプロダクションコードで使ってもいいのでしょうか? ありがとうございました。 Adrian

どのように解決するのですか?

Stopwatchが行っていることは、ほとんどすべて QueryPerformanceCounter . 私が理解しているように、Stopwatchは高解像度のタイマーへのアクセスを提供するためにあります。