And*_*rew 5 c# caching memorycache
将缓存条目添加到 System.Runtime.Caching.MemoryCache 时,可以使用 AbsoluteExpiration 指定 CacheItemPolicy。根据文档(https://msdn.microsoft.com/en-us/library/Dd780607(v=VS.110,d=hv.2).aspx),AbsoluteExpiration是“在缓存条目被逐出”。
是的,这就是我想要的 - 指定我的缓存条目将过期的“时间段”。但 AbsoluteExpiration 的类型为 DateTimeOffset 而不是 TimeSpan,因此它是“时间点”而不是“时间段”。那我该怎么设置呢?例如,如果我希望条目在 60 秒内过期,我应该将 AbsoluteExpiration 设置为 吗DateTimeOffset.UtcNow.AddSeconds(60)?如果我设置为 ,我会得到相同的结果吗DateTimeOffset.Now.AddSeconds(60)?有什么理由使用其中之一?
是的,文档中的短语“在指定的持续时间之后”有点令人困惑,但DateTimeOffset类型和AbsoluteExpiration属性名称毫无疑问。
至于如何构造 a 实例的方式DateTimeOffset:在这种情况下实际上没有任何区别。DateTimeOffset.UtcNow.AddSeconds(60)并将DateTimeOffset.Now.AddSeconds(60)指向相同的绝对时间。这些日期时间会因时区而异,但缓存条目到期的时刻在两种情况下都是相同的。因此没有任何理由选择其中之一。