【问题标题】:.Net MemoryCache AbsoluteExpiration documentation is confusing.Net MemoryCache AbsoluteExpiration 文档令人困惑
【发布时间】:2017-12-04 02:30:38
【问题描述】:

向 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),我会得到相同的结果吗?有任何理由使用其中一个吗?

【问题讨论】:

    标签: c# caching memorycache


    【解决方案1】:

    是的,文档中的“在指定的持续时间后”这句话有点令人困惑,但DateTimeOffset 类型和AbsoluteExpiration 属性名称毫无疑问。

    关于如何构造DateTimeOffset 的实例的方式:在这种情况下实际上没有任何区别。 DateTimeOffset.UtcNow.AddSeconds(60)DateTimeOffset.Now.AddSeconds(60) 将指向相同的绝对时间。这些日期时间会因时区而异,但缓存条目到期的时刻在两种情况下都是相同的。所以没有任何理由偏爱一个或另一个。

    【讨论】:

      猜你喜欢
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 2017-05-30
      相关资源
      最近更新 更多