【问题标题】:is cacheitemremovedcallback of HttpRuntime.Cache thread safe?HttpRuntime.Cache 线程的 cacheitemremovedcallback 安全吗?
【发布时间】:2011-05-07 18:05:25
【问题描述】:

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

【问题讨论】:

    标签: .net thread-safety httpruntime.cache


    【解决方案1】:

    您应该改用CacheItemUpdateCallback 委托。

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 2018-07-18
      • 2011-07-04
      • 2014-04-26
      • 2012-11-30
      • 2010-12-30
      • 2013-03-12
      • 2021-08-03
      • 2010-12-27
      相关资源
      最近更新 更多