文档ConcurrentDictionary没有明确的状态,所以我想我们不能指望委托valueFactory并updateValueFactory让它们的执行同步(分别来自GetOrAdd()和AddOrUpdate()操作).
因此,我认为我们无法在其中实现需要并发控制的资源,而无需手动实现我们自己的并发控制,可能只是使用[MethodImpl(MethodImplOptions.Synchronized)]代理.
我对吗?或者ConcurrentDictionary是线程安全的事实,我们可以预期对这些代理的调用会自动同步(线程安全)?
我的理解是,如果您在C#中使用通用列表(List),它可以支持多个并发读取器,但只能支持一个编写器.当您在混合中引入编写器时,还必须提供同步构造以使操作线程安全.
List.Contains被认为是一个读操作吗?换句话说,如果我调用此方法,我是否需要担心作者可能同时写入此列表?