2017-12-04 16 views
0

System.Runtime.Caching.MemoryCacheにキャッシュエントリを追加するときに、AbsoluteExpirationでCacheItemPolicyを指定できます。ドキュメント(https://msdn.microsoft.com/en-us/library/Dd780607(v=VS.110,d=hv.2).aspx)によれば、AbsoluteExpirationは「キャッシュエントリが追い出されるまでに経過しなければならない期間」です。.Net MemoryCache AbsoluteExpirationのドキュメントが混乱しています

はい、それは私のキャッシュエントリが期限切れになる "期間"を指定することです。しかし、AbsoluteExpirationはTimeSpanではなくDateTimeOffset型であるため、「時間帯」ではなく「時点」です。どのように私はそれを設定する必要がありますか?例えば。エントリを60秒で期限切れにしたい場合は、AbsoluteExpirationをDateTimeOffset.UtcNow.AddSeconds(60)に設定する必要がありますか? DateTimeOffset.Now.AddSeconds(60)に設定しても同じ結果が得られますか?どちらかを使用する理由は何ですか?

答えて

1

ええ、ドキュメントの「指定された期間を過ぎた後」というフレーズはちょっと混乱しますが、DateTimeOffsetタイプとAbsoluteExpirationプロパティ名は間違いありません。

DateTimeOffsetのインスタンスを作成する方法に関しては、実際にはこの場合に違いはありません。 DateTimeOffset.UtcNow.AddSeconds(60)およびDateTimeOffset.Now.AddSeconds(60)は同じ絶対時間を指します。これらの日付時刻はタイムゾーンによって異なりますが、キャッシュエントリの期限切れの瞬間はどちらの場合も同じになります。ですから、どちらかを好む理由はありません。

関連する問題