Asp.net HttpRuntime.Cache.Remove和HttpRuntime.Cache.Insert之间的差异(…,null,…)

Asp.net HttpRuntime.Cache.Remove和HttpRuntime.Cache.Insert之间的差异(…,null,…),asp.net,Asp.net,我正在使用http.cache,我找到了两种方法来重置缓存中项目的值 a.) cache.remove(<cacheKey>) b.) cache.Insert(<cacheKey>, null, null, Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0)); 我注意到a和b之间的区别是,a的效应是即时的,而b的效应需要一些时间。详细的最终效果是不同的含义,在a中删除密钥,而在b中为我将密钥的值设置为null,两种方

我正在使用http.cache,我找到了两种方法来重置缓存中项目的值

a.) cache.remove(<cacheKey>)
b.) cache.Insert(<cacheKey>, null, null, Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0));
我注意到a和b之间的区别是,a的效应是即时的,而b的效应需要一些时间。详细的最终效果是不同的含义,在a中删除密钥,而在b中为我将密钥的值设置为null,两种方式都是相同的,因为在我的应用程序中,我使用:

cache[<cacheKey>]
可能值得一提的是,缓存中有一个字典,当我试图获取值时,缓存周围有一个try/catch块[…]


这里的问题是,为什么需要时间来反映b,而a是即时的?

我认为这是因为缓存中涉及一些延迟。Insert-即使在不存在密钥时也可以调用它来创建密钥,或者调用它来更新密钥。我想还需要处理一些潜在的线程安全问题。一段时间有多长?您是如何衡量它的?@Tim:some time=缓存过期的时间!