在我的网络服务应用中,我找到了一个将项目添加到缓存中的代码:
System.Web.Caching.Cache.Insert(cacheKey, item, null, Cache.NoAbsoluteExpiration,
TimeSpan.Zero, CacheItemPriority.Normal, callback);
在这种情况下,似乎没有绝对过期,并且SlidingExpiration被设置为TimeSpan.Zero,这对我来说意味着项目应该立即过期。
与此同时,我从来没有真正看到任何过期,但是,我没耐心地坐在那里等待。
那么在这种情况下会发生什么?当SlidingExpiration为零时,是否存在一些默认值?或者它永不过期
答案 0 :(得分:5)
这等于传递Cache.NoSlidingExpiration
,所以是的,该项永远不会过期(除非由于可用内存量较少)。
静态成员Cache.NoSlidingExpiration
已初始化为TimeSpan.Zero
。 Cache.NoAbsoluteExpiration
已初始化为TimeSpan.MaxValue
。