【发布时间】:2016-09-30 04:10:21
【问题描述】:
我设置了以下代码来创建缓存。在调试中,我将cache 添加到监视列表中,并单步执行代码。但是当我检查 cache 的属性时,在 PollingInterval 中(我只能看到与时间相关的任何内容)它显示天数为 0,分钟数为 2。我已经尝试过使用 AbsoluteExpiration 和 SlidingExpiration。
ObjectCache cache = MemoryCache.Default;
CacheItemPolicy policy = new CacheItemPolicy();
//policy.AbsoluteExpiration = DateTimeOffset.Now.AddHours(24.0);
//policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(30.0);
policy.SlidingExpiration = TimeSpan.FromDays(2.0);
cache.Set("Clients", clients, policy);
我什至尝试使用DateTimeOffset.Now.AddHours(24.0) 作为cache.Set(...) 的第三个参数而不是CacheItemPolicy。
谢谢。
【问题讨论】:
-
PollingInterval - “获取缓存更新其内存统计信息的最长时间” - 不是缓存对象的时间。
-
如何确认缓存过期时间?
-
Write a test?或者也许可以通过反射窥视它的领域?你为什么不认为它设置正确;y?
-
我正在尝试确认是否在设置缓存时重置过期计时器。这是为了知道我们是否可以强制(或重置)缓存过期并更新它。