Скорость чтения DateTime.Now
Есть ли вероятность, что этот оператор вернет true
DateTime.Now == DateTime.Now
может очень быстро вернуть машину true для этого утверждения, я попробовал на нескольких машинах и всегда был false?
Ответы
Ответ 1
Да.
Разрешение этого свойства зависит от системного таймера, который примерно 15 миллисекунд в системах Windows. В результате повторяется вызывает свойство Now в короткий промежуток времени, например, в цикле, может вернуть одно и то же значение.
источник: https://msdn.microsoft.com/en-us/library/system.datetime.now(v=vs.110).aspx
Ответ 2
Я только что запустил этот script в LINQPad:
Enumerable.Range(1, 1000).Select(i => DateTime.Now == DateTime.Now).ToList()
После первого элемента все остальные являются истинными. Я предполагаю, что в первой паре звонков на DateTime.Now
имеется некоторое задержка, из-за чего проверка часто возвращает false при первом запуске в заданном приложении.
Но да, это выражение может (и часто делает) возвращать true.