2014-04-08 34 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); 

这会给你你想要的结果。