代码之家  ›  专栏  ›  技术社区  ›  gsharp

MemoryCache绝对过期

  •  6
  • gsharp  · 技术社区  · 7 年前

    使用MemoryCache时,可以设置

    • AbsoluteExpiration
    • AbsoluteExpirationRelativeToNow

    示例:

        cache.GetOrCreate("key", f =>
        {
             f.AbsoluteExpiration = new DateTimeOffset(DateTime.Today.AddDays(1));
             f.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10);
            return "item";
        });
    

    是否可以同时设置这两个属性,并应用最先过期的属性? 或者设置的最后一个属性是“主属性”吗?

    1 回复  |  直到 7 年前
        1
  •  10
  •   Evk    7 年前

    因为这些属性是接口( ICacheEntry )-他们的行为取决于具体实施。如果我们默认 MemoryCache (和相应的 CacheEntry 实现)-那么是的,它们都可以设置,因为它们都表示绝对过期,所以较早发生的事件将生效,而另一个将被忽略。