8

の複製: .NET/C# でティック精度のタイムスタンプを取得する方法は?
Stopwatch.GetTimestamp() から DateTime に取得する方法

Stopwatch.IsHighResolution が true であると仮定します

4

2 に答える 2

8

高解像度のカウンターの場合、値がリアルタイムと相関しているという保証はありません。たとえば、「コンピューターが起動してからのティック数」である可能性があります。高解像度タイマーの場合は を使用できますがnew DateTime(Stopwatch.GetTimestamp())、必ずしも高解像度タイマーに有用な値が得られるとは限りません。(確かに私の箱にはありません。)

これを何に使おうとしているのですか?のアイデアは、時間間隔Stopwatchを測定することです。

于 2009-09-17T12:48:46.633 に答える
0

経過時間を追跡しようとしている場合は、次を使用する必要があることに注意してください。

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
于 2015-10-16T22:46:05.060 に答える