【发布时间】:2014-03-02 08:02:37
【问题描述】:
首先,使用索引分配(例如myConcurrentDictionary[someKey] = someValue;)将项目简单地添加到并发字典中是否安全?
我只是感到困惑,因为它隐藏了 IDictionary 方法(例如 Add)。
为什么 AddOrUpdate() 需要一个函数来更新值?有没有一种方法可以设置一个键的值而不管键是否已经存在?
我真的无法从 MSDN 页面收集到这个。
【问题讨论】:
-
您所说的“安全”究竟是什么意思?
-
现在对我自己来说,只要两个线程同时尝试添加/更新一个条目时没有异常是安全的。但是,实际上我提到了“安全”,因为我不明白 Add() 方法被隐藏的原因。所以我认为不应使用 Add() 或 []。
-
所以您认为不应使用 both 成员,因为其中只有 一个 被显式实现?我不明白这其中的逻辑。如果您不打算使用索引器,那也会显式实现。
-
是的,我知道,只是觉得这样问更安全。