我有一个非常简单的问题:
从不同线程同时读取
FrozenDictionary<TKey,TValue>
的实例是否安全?
我认为这种类型是线程安全的,因为它是不可变的,但奇怪的是它的线程安全性没有明确记录(我通过查看官方文档找不到任何提及它的信息。我看错了吗?地点?)。
根据我的经验,线程安全始终明确记录在 Microsoft 文档中,并且从未被视为“隐式”。例如,
ImmutableDictionary<TKey,TValue>
的线程安全性是明确记录的。
有人对此有线索吗?
文档中,我们可以读到有方法
TryAdd
。显然,你也可以从那本词典中阅读。
因此,将它们放在一起,您可以读取和写入,默认情况下这不是线程安全的。另外,线程安全性没有记录在案,所以我不会做出这么大的假设并尝试在这里采取防御措施。