Dot-Net

我如何從 Stopwatch.GetTimestamp() 到 DateTime?

  • October 16, 2015

重複:如何在 .NET / C# 中獲取刻度精度的時間戳?

我如何從 Stopwatch.GetTimestamp() 到 DateTime

假設 Stopwatch.IsHighResolution 為真

如果它是一個高解析度計數器,則不能保證該值與實時有任何關聯——例如,它很可能是“電腦啟動後的滴答聲”。對於高解析度計時器,您可以使用new DateTime(Stopwatch.GetTimestamp()),但這不一定會為高解析度計時器提供有用的值。(它當然不在我的盒子上。)

你想用這個做什麼?的想法Stopwatch是測量時間間隔

請記住,如果您嘗試跟踪經過的時間,您應該使用:

Stopwatch sw = Stopwatch.StartNew();
//do stuff
sw.Elapsed; //or
sw.ElapsedMilliseconds;

這可以準確地將刻度轉換為實時。將刻度轉換為 DateTime,然後比較 DateTimes 也可以,但上面更簡單。

有些人(包括我自己)錯誤地使用了這樣的程式碼,並因此而陷入困境:

startTime = Stopwatch.GetTimestamp();

totalTime = (Stopwatch.GetTimestamp() - startTime) / 10000; 
//it was assumed 10,000 ticks was a millisecond, incorrectly

引用自:https://stackoverflow.com/questions/1438652