2014-04-08 35 views
0

我正在編寫一些代碼來檢測HID空閒時間。TimeSpan.FromTicks到毫秒不給予預期的答案

var before = DateTime.Now.Ticks; 
Console.WriteLine(before); 
System.Threading.Thread.Sleep(5000); 
var after = DateTime.Now.Ticks; 
Console.WriteLine(TimeSpan.FromTicks(after - before).Milliseconds); 

我應該得到5毫秒的輸出,但事實並非如此。這是非常隨機的。我做錯了什麼?

自我提醒:我會嘗試system.diagnostic.stopwatch現在

+0

改爲使用['Stopwatch'類](http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx)。 (編輯:最後沒有看到你的評論) –

+0

但爲什麼不Ticks和TimeSpan的工作? – Jake

+1

@Jake:您正在查看錯誤的屬性。你想要的是'TotalMilliseconds'。 – Jon

回答

3

更改爲

Console.WriteLine(TimeSpan.FromTicks(after - before).TotalMilliseconds); 

這會給你你想要的結果。