HttpRuntime.Cache的cacheitemremovedcallback线程安全吗?

发布于 2024-10-01 16:24:51 字数 504 浏览 1 评论 0原文

我使用 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”并完成将数据加载回缓存,然后再提取数据?

i use HttpRuntime.Cache.Insert to insert data into cache.
i have the function 'onremove' as the cacheitemremovedcallback - when the cache expires (after 15 minutes) it releases data in cache and calls 'onremove' that insert the data again to the cache.

everytime i want to use the data in the cache i check that the data is there first:

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

what happens if i check that the data is in the cache and it is there, but as soon as i want to use it it expires?
so when i call:

DATADT = (DataTable)HttpRuntime.Cache[CACHE_DATA_TABLE]

Does the HttpRuntime.Cache waits untill 'onremove' is called and finish loading the data back into cache before it extract the data ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

叫思念不要吵 2024-10-08 16:24:51

您应该使用 CacheItemUpdateCallback 委托。

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

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

You should use a CacheItemUpdateCallback delegate instead.

This lets you take the desired action before the item is about to be removed.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文