【发布时间】:2010-11-29 03:32:13
【问题描述】:
重复:How to get timestamp of tick precision in .NET / C#?
我如何从 Stopwatch.GetTimestamp() 到 DateTime
假设 Stopwatch.IsHighResolution 为真
【问题讨论】:
重复:How to get timestamp of tick precision in .NET / C#?
我如何从 Stopwatch.GetTimestamp() 到 DateTime
假设 Stopwatch.IsHighResolution 为真
【问题讨论】:
请记住,如果您尝试跟踪经过的时间,您应该使用:
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
【讨论】:
如果是高分辨率计数器,则无法保证该值与实时有任何关联 - 例如,它很可能是“计算机启动后的滴答声”。对于非-高分辨率计时器,您可以使用new DateTime(Stopwatch.GetTimestamp()),但这不一定会为高分辨率计时器提供有用的值。 (它当然不在我的盒子上。)
你想用这个做什么? Stopwatch 的想法是测量时间的间隔。
【讨论】: