ConcurrentDictionary
的文档没有明确说明,因此我认为我们不能指望委托valueFactory
和updateValueFactory
在从 GetOrAdd() 和 AddOrUpdate() 操作中分别执行时会被同步。因此,我认为如果需要并发控制的资源,我们不能在它们内部实现使用资源,除非手动实现自己的并发控制,可能只需对委托使用
[MethodImpl(MethodImplOptions.Synchronized)]
即可。我是正确的吗?或者
ConcurrentDictionary
是线程安全的,我们可以期望对这些委托的调用自动同步(也是线程安全的)?
dictionary[key](argument);
)时,执行不会被同步吗?还是我完全错了?谢谢。 - Snoopnew SomeObject()
,这绝对是线程安全的,因为它是一个无状态操作。 - Brian Gideon