【发布时间】:2023-03-22 04:35:01
【问题描述】:
System.Collections.Concurrent.ConcurrentDictionary 的 MSDN 文档说:
线程安全
ConcurrentDictionary<TKey, TValue>的所有公共和受保护成员都是线程安全的,并且可以从多个线程同时使用。但是,通过ConcurrentDictionary<TKey, TValue>实现的接口之一访问的成员,包括扩展方法,不能保证是线程安全的,可能需要由调用者同步。
(强调我的)
这似乎是自相矛盾的。 “所有成员都是线程安全的。但成员 [有时] 不是线程安全的。”
我明白扩展方法当然不能保证是线程安全的。
但是“通过其中一个接口访问”是什么意思? TryGetValue(IDictionary<TKey, TValue> 接口的成员)是线程安全的吗?
【问题讨论】:
标签: c# .net multithreading concurrency concurrentdictionary