2016-11-30 22 views
10

は、任意のこの文はtrueを返すだろうとチャンスDateTime.Nowの検索速度

DateTime.Now == DateTime.Now 

は非常に高速なマシンは、私はいくつかのマシンとその常にfalseにしようとした、この文に対してtrueを返すことができますがありますか?

+0

私はこれをDotNetFiddleで試してみましたが、真を返します – Tuco

+0

@Tuco実際の.NETアプリケーションを試しましたか? – Yaman

+1

DotNetFiddleは実際の.NETを実行します – Tuco

答えて

18

はい。

このプロパティの解像度は、Windows systems.As上 約15ミリ秒の結果であるシステムタイマーに依存し、そのようなループのように、短い時間間隔で今すぐプロパティに のコールを繰り返し、 は同じ値を返すことがあります。

ソース: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への最初の2つの呼び出しに関係するレイテンシがあると推測しています。これは、指定したアプリケーションで最初に実行したときにfalseを返すことがよくあります。

はい、その式はtrueを返すことができます(しばしば)。