到目前为止,我已经计算了三种测量C#当前时间或时间差异的方法:
以下表示时间/时间跨度测量的类型:
还有其他人吗?
此外,“Tick”的定义似乎不一致。例如:
Environment.TickCount
以1毫秒为间隔。DateTime.Ticks
和TimeSpan.Ticks
的间隔为100纳秒。Stopwatch.ElapsedTicks
基于Stopwatch.Frequency
,确切的时间间隔因系统而异。 这是怎么回事?
此外,各种时间测量方法/类型之间存在什么差异,在什么情况下应该使用另一种?
答案 0 :(得分:3)
这是怎么回事?
您链接的每个文档页面的第一句话都清楚地描述了它们的用途(强调添加):
此计算机上的当前日期和时间,以当地时间表示。
获取自系统启动以来经过的毫秒数。
提供一组方法和属性,可用于准确衡量已用时间。
代表及时,通常表示为日期和时间。
代表时间间隔。
(两个时间点之间的差异)
所以DateTime
和TimeSpan
不可互换,超过Location
和Distance
。它们相关但代表不同的东西。
如果其中任何一项不清楚,或者您需要进一步澄清,请详细说明 您对此感到困惑。
此外,“Tick”的定义似乎不一致。
因为他们在定义它们的环境中定义_。我所知道的“滴答”并没有“行业标准”的定义。某些类型(如Stopwatch
)会牺牲范围以获得更高的精度,而其他类型(如DateTime
)则允许更大的范围,但不能精确到毫秒级。
还有其他人吗?
你没有提到的是:
在设定的时间间隔后生成一个事件,并提供生成重复事件的选项。
同样,用于不同目的。它旨在定期执行某些操作。
我不确定你的范围有多宽,知道是否有“其他人”。如果您有其中一个类未满足的特定需求,请将其添加到您的问题中。