.net HttpRuntime.Cache的cacheitemremovedcallback是否线程安全?

.net HttpRuntime.Cache的cacheitemremovedcallback是否线程安全?,.net,thread-safety,httpruntime.cache,.net,Thread Safety,Httpruntime.cache,我使用HttpRuntime.Cache.Insert将数据插入缓存。 我将函数“onremove”作为cacheitemremovedcallback-当缓存过期(15分钟后)时,它释放缓存中的数据并调用“onremove”,再次将数据插入缓存 每次我想使用缓存中的数据时,我都会首先检查数据是否存在: if (HttpRuntime.Cache[CACHE_DATA_TABLE] == null) { // load data into cache again} 如果

我使用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”并将数据加载回缓存

您应该改用委托

这使您可以在项目即将删除之前执行所需的操作

见: