DateTime.Now检索速度

时间:2016-11-30 21:29:02

标签: c# .net

这句话是否有可能返回真实

DateTime.Now == DateTime.Now

一个非常快的机器可以为这个语句返回true,我试过几台机器并且它总是假的吗?

2 个答案:

答案 0 :(得分:19)

  

此属性的分辨率取决于系统计时器,即   在Windows系统上大约15毫秒。结果,重复   在短时间间隔内调用Now属性,例如在循环中,   可能会返回相同的值。

来源:https://msdn.microsoft.com/en-us/library/system.datetime.now(v=vs.110).aspx

答案 1 :(得分:8)

我刚刚在LINQPad中运行了这个脚本:

Enumerable.Range(1, 1000).Select(i => DateTime.Now == DateTime.Now).ToList()

在第一个元素之后,所有其他元素都是真的。我猜测在DateTime.Now的前几次调用中涉及到一些延迟,导致检查在第一次在给定应用程序中运行时经常返回false。

但是,是的,那个表达式可以(并且经常会)返回true。