有多少种方法可以衡量时间?

时间:2016-06-21 19:15:27

标签: c# datetime time stopwatch

到目前为止,我已经计算了三种测量C#当前时间或时间差异的方法:

以下表示时间/时间跨度测量的类型:

还有其他人吗?

此外,“Tick”的定义似乎不一致。例如:

  • Environment.TickCount以1毫秒为间隔。
  • DateTime.TicksTimeSpan.Ticks的间隔为100纳秒。
  • Stopwatch.ElapsedTicks基于Stopwatch.Frequency,确切的时间间隔因系统而异。

这是怎么回事?

此外,各种时间测量方法/类型之间存在什么差异,在什么情况下应该使用另一种?

1 个答案:

答案 0 :(得分:3)

  

这是怎么回事?

您链接的每个文档页面的第一句话都清楚地描述了它们的用途(强调添加):

  

此计算机上的当前日期和时间,以当地时间表示。

  

获取自系统启动以来经过的毫秒数

  

提供一组方法和属性,可用于准确衡量已用时间

  

代表及时,通常表示为日期和时间。

  

代表时间间隔

(两个时间点之间的差异)

所以DateTimeTimeSpan不可互换,超过LocationDistance。它们相关但代表不同的东西。

如果其中任何一项不清楚,或者您需要进一步澄清,请详细说明 您对此感到困惑。

  

此外,“Tick”的定义似乎不一致。

因为他们在定义它们的环境中定义_。我所知道的“滴答”并没有“行业标准”的定义。某些类型(如Stopwatch)会牺牲范围以获得更高的精度,而其他类型(如DateTime)则允许更大的范围,但不能精确到毫秒级。

  

还有其他人吗?

你没有提到的是:

  

在设定的时间间隔后生成一个事件,并提供生成重复事件的选项。

同样,用于不同目的。它旨在定期执行某些操作。

我不确定你的范围有多宽,知道是否有“其他人”。如果您有其中一个类未满足的特定需求,请将其添加到您的问题中。