3

我使用 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”并在提取数据之前完成将数据加载回缓存?

4

1 回答 1

1

您应该改用CacheItemUpdateCallback委托。

这使您可以在项目即将被删除之前采取所需的操作。

请参阅: MSDN 上的 Cache.Insert 方法(字符串、对象、CacheDependency、DateTime、TimeSpan、CacheItemUpdateCallback)

于 2011-04-17T22:38:36.150 回答