gpt4 book ai didi

c# - MemoryCache Contains() 线程安全

转载 作者:行者123 更新时间:2023-11-30 22:23:59 26 4
gpt4 key购买 nike

MemoryCache 是一个线程安全类,根据 this文章。但我不明白它在特定情况下会如何表现。例如我有代码:

static private MemoryCache _cache = MemoryCache.Default;

...

if (_cache.Contains("Test"))
{
return _cache.Get("Test") as string;
}
  1. 元素的生存时间能否在我调用 Contains() 后立即过期,以便返回 null 值?
  2. 另一个线程能否在我调用 Contains() 之后删除项目,以便返回 null 值?

最佳答案

是的,是的,这些是常见的竞争条件。如果只需将代码编写为

,就可以避免它们
var test = _cache.Get("Test");
if (test != null) {
return test as string;
}

关于c# - MemoryCache Contains() 线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13045950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com