ConcurrentDictionary.GetOrAdd方法中valueFactory执行结果无法保证插入字典的问题咨询
ConcurrentDictionary.GetOrAdd方法中valueFactory执行结果无法保证插入字典的问题咨询
最近研究ConcurrentDictionary的时候,发现文档里有个很容易踩坑的细节,想跟大家唠唠:valueFactory是在锁的外部执行的。也就是说,当你的valueFactory正在生成值的过程中,其他线程完全有可能抢先一步把同一个key对应的键值对插入到字典里。这种情况下,哪怕你的valueFactory顺利执行完成,它生成的结果也不一定会被插入字典,更不会作为返回值给到你。
我自己原来的代码大概是这样的:
public class MyClass { private readonly ConcurrentDictionary<string, Task<string>> myD
(注:原代码片段未完整展示)
备注:内容来源于stack exchange,提问作者X-L
相关产品推荐
相关产品推荐

