c# – 你可以使用ConcurrentDictionary进行一对多映射吗?

我有一个映射,其中每个键可以有多个关联值.我认为ConcurrentDictionary可以帮助我更轻松地编写此映射以在多线程环境中使用,但这些方法似乎是围绕单个值构建的.我看到AddOrUpdate()允许我修改值,如果它已经存在,但它不保证该操作的原子性,所以它似乎毫无意义?有没有人有解决这种情况的好策略?

对不起,我想我有点模糊.我想为一个键有多个值,即有一个与键相关联的IList.但我希望能够以安全的方式从多值中添加/删除值.看起来像AddOrUpdate委托方法如果在同一时间多次调用它会导致事情丢失?

最佳答案 我认为AddOrUpdate是原子的,但看起来它对委托来说并不是原子的.抱歉!

可能有用的参考:http://blogs.msdn.com/b/pfxteam/archive/2009/11/06/9918363.aspx

点赞