我使用HttpRuntime.Cache.Insert将数据插入缓存。
我具有“onremove”功能,作为cacheitemremovedcallback-当缓存过期(15分钟后)时,它将释放缓存中的数据并调用“onremove”,将数据再次插入缓存中。

每次我想使用缓存中的数据时,我首先检查数据是否存在:

if (HttpRuntime.Cache[CACHE_DATA_TABLE] == null)
            { // load data into cache again}

如果我检查数据是否在缓存中并且在缓存中,但是一旦我要使用它,它会过期怎么办?
所以当我打电话:
DATADT = (DataTable)HttpRuntime.Cache[CACHE_DATA_TABLE]

HttpRuntime.Cache是​​否等待直到调用“onremove”并完成将数据加载回高速缓存,然后再提取数据?

最佳答案

您应该改为使用CacheItemUpdateCallback委托(delegate)。

这样,您就可以在要删除该项目之前采取所需的操作。

看到:
MSDN on Cache.Insert Method (String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

09-30 17:18