在当前项目中,我可以通过两种方式为并发字典中的现有键分配值。
A. concurrentDictionary1[key] = value
;
and
B. concurrentDictionary2.AddOrUpdate(key, value, (k, v) => value);
如果我知道“密钥”存在,那么它们在功能上是否等效?
方法“A”是否绕过了并发字典的并发提供的保护?
这里有什么区别呢?选择其中一种而不是另一种的原因是什么?
我查看了 msdn 上的文档,似乎他们只用方法“A”初始化并发字典,而不是更新它。
这是一个老问题,但没有人回答为什么你会使用其中一个而不是另一个。
如果您想要添加或更新并且更新不依赖于现有值,请选择 A(索引器)。
如果您想要添加或更新并且更新取决于现有值,请选择 B (AddOrUpdate)。 AddOrUpdate 将自动执行更新。
因此,在问题的情况下,您想要使用索引器。它更简单、更容易阅读,而且可能更快,因为您没有创建匿名函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)