の複製: .NET/C# でティック精度のタイムスタンプを取得する方法は?
Stopwatch.GetTimestamp() から DateTime に取得する方法
Stopwatch.IsHighResolution が true であると仮定します
の複製: .NET/C# でティック精度のタイムスタンプを取得する方法は?
Stopwatch.GetTimestamp() から DateTime に取得する方法
Stopwatch.IsHighResolution が true であると仮定します
高解像度のカウンターの場合、値がリアルタイムと相関しているという保証はありません。たとえば、「コンピューターが起動してからのティック数」である可能性があります。非高解像度タイマーの場合は を使用できますがnew DateTime(Stopwatch.GetTimestamp())
、必ずしも高解像度タイマーに有用な値が得られるとは限りません。(確かに私の箱にはありません。)
これを何に使おうとしているのですか?のアイデアは、時間間隔Stopwatch
を測定することです。
経過時間を追跡しようとしている場合は、次を使用する必要があることに注意してください。
Stopwatch sw = Stopwatch.StartNew();
//do stuff
sw.Elapsed; //or
sw.ElapsedMilliseconds;
これにより、ティックがリアルタイムに正確に変換されます。ティックを DateTime に変換してから DateTime を比較することもできますが、上記の方が簡単です。
一部の人 (私を含む) は、このようなコードを誤って使用し、それから悪い時間を過ごしました:
startTime = Stopwatch.GetTimestamp();
totalTime = (Stopwatch.GetTimestamp() - startTime) / 10000;
//it was assumed 10,000 ticks was a millisecond, incorrectly