2012-01-06 71 views
-2

什麼應該是最好的方式來計算時間差,這是準確的微米級。目前,我做如下:推薦的方法來計算兩個時間差

((TimeSpan)(DateTime.Now - _perfClock)).TotalMilliseconds 

注:perfClock是日期時間(之前的任務設置)

這是想給精度高達毫秒,但在我的情況下,它顯示值與「000結束」。像8000,9000等... 這迫使我認爲這只是將秒轉換爲毫秒,而不是以毫秒計算差異。 (可能在上面的代碼中我錯了)。

但是,對於準確的時間差分計算,推薦的機制應該是什麼?

-Sumeet

+2

我想你應該看看['Stopwatch'](HTTP ://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx) – V4Vendetta 2012-01-06 06:07:33

+0

標題是誤導,因爲你從一個DateTime而不是一個TimeSpan減去 – 2012-01-06 06:49:42

+0

我相信從DateTime減去給你一個時間跨度 – JasonS 2012-01-06 06:52:11

回答

0

我不知道你是測量時間的背景之下,這將是很好用Stopwatch啓動並檢查結果。

也值得一讀Precise Measurement

0

你試過:

TimeSpan diff = DateTime.Now.Subtract(_perfClock); 
2

的問題是不與時間跨度,即精確到蜱,這是100納秒。

問題是您正在使用DateTime.Now作爲您的計時器。

DateTime.Now精確到16ms我相信。如V4Vendetta所述,如果您需要「高分辨率」結果,則需要使用秒錶。秒錶可以爲您提供蜱(長)或TimeSpan。使用Timespan進行簡單的操作(在你的情況下,加/減)。

還要注意的是秒錶提供了一個.IsHighResolution屬性,就看你有比Datetime.Now更好的精度(它總是真實的PC IIRC)