如何从 Stopwatch.GetTimestamp() 获取 DateTime?

问题描述 投票:0回答:2

如何从

Stopwatch.GetTimestamp()
转到
DateTime

假设

Stopwatch.IsHighResolution
为真。

c# .net datetime stopwatch
2个回答
9
投票

如果它是高分辨率计数器,则不能保证该值与实时有任何相关性 - 例如,它很可能是“自计算机启动以来的滴答声”。对于高分辨率计时器,您可以使用

new DateTime(Stopwatch.GetTimestamp())
,但这不一定能为高分辨率计时器提供有用的值。 (我的盒子上肯定没有。)

你想用这个做什么?

Stopwatch
的想法是测量时间的间隔


0
投票

请记住,如果您想跟踪经过的时间,您应该使用:

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

这可以准确地将价格变动转换为实时。将刻度转换为日期时间,然后比较日期时间也可以,但上面的方法更简单。

有些人(包括我自己)错误地使用了这样的代码,并从中得到了不好的时光:

startTime = Stopwatch.GetTimestamp();

totalTime = (Stopwatch.GetTimestamp() - startTime) / 10000; 
//it was assumed 10,000 ticks was a millisecond, incorrectly
© www.soinside.com 2019 - 2024. All rights reserved.