2017-12-04 11 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)은 동일한 절대 시간을 나타냅니다. 이러한 datetimes는 시간대에 따라 다르지만 캐시 항목 만료 순간은 두 경우 모두 동일합니다. 그래서 하나 또는 다른 것을 선호 할 이유가 없습니다.