2016-11-30 2 views
10

Есть ли шанс, что это утверждение справедливо было бы вернутьDateTime.Now скорость поиска

DateTime.Now == DateTime.Now 

может очень быстрая машина возвращает истину для этого утверждения, я попробовал на нескольких машинах и ее всегда ложно?

+0

Я пробовал это на DotNetFiddle, и он возвращает true – Tuco

+0

@Tuco Вы пробовали на реальном .NET-приложении? – Yaman

+1

DotNetFiddle работает в реальном времени. NET – Tuco

ответ

18

Да.

Разрешение этого свойства зависит от системного таймера, который примерно 15 миллисекунд на Windows, systems.As результат, повторил вызовы свойству Теперь в короткий промежуток времени, например, в цикле, может вернуть такое же значение.

Источник: https://msdn.microsoft.com/en-us/library/system.datetime.now(v=vs.110).aspx

8

Я просто побежал этот сценарий в LINQPad:

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

После первого элемента, все остальные являются истинными. Я предполагаю, что в первой паре звонков есть DateTime.Now, что заставляет часто возвращать false при первом запуске в заданном приложении.

Но да, это выражение может (и часто делает) возвращать true.

Смежные вопросы