_Timeout.InfiniteTimespan
_が.NET4.0に存在しないことを実際に知っています。
.NET 4.0に存在する_Timeout.Infinite
_もあります。
私はこれらの2つのメソッドを呼び出しています:
_// the Change-Method
public bool Change(
TimeSpan dueTime,
TimeSpan period
)
// the Constructor of Timer
public Timer(
TimerCallback callback,
Object state,
TimeSpan dueTime,
TimeSpan period
)
_
場合によっては、dueTime
パラメータを無限にする必要があります。これは、イベントが発生しないことを意味します。他のオーバーロードを単純に使用できることは知っていますが、何かをもっと単純にする必要があるように感じます。
すでにnew TimeSpan(0, 0, -1)
またはnew TimeSpan(-1)
をdueTimeとして使用してみました。 *ただし、ArgumentOutOfRangeException
パラメータを指すdueTime
がスローされます。
。NET 4.5の_Timeout.InfiniteTimespan
_のように機能するリテラルを作成することはどういうわけか可能ですか?
TimeOut.InfiniteTimeSpan
in TimeOut
クラスが定義されています 次のように:
public static readonly TimeSpan InfiniteTimeSpan = new TimeSpan(0, 0, 0, 0, Timeout.Infinite);
どこでTimeout.Infinite
に設定されています -1
なので、通過しています-1
ミリ秒部分の値。
できるよ:
TimeSpan InfiniteTimeSpan = new TimeSpan(0, 0, 0, 0, -1);
無限のタイムスパンは、ミリ秒が-1
に設定されたTimeSpan
に他なりません。
だから、あなたはただすることができます
TimeSpan infinite = TimeSpan.FromMilliseconds(-1);
モデルが「期限」時間が存在しないイベントをサポートしている場合は、それを無限大に設定して、それが間違っているように見えることを示します。パラメータをnull許容にしないのはなぜですか?