【发布时间】:2013-03-12 08:18:19
【问题描述】:
当我有多个线程需要与一个集合同时工作时,我通常使用System.Collections.Concurrent 下的集合。
但是,与非并发对应物相比,这些集合更昂贵。我想知道在某些情况下是否可以安全地用非并发集合替换它们。
例如,假设我有一个字典,我首先用数据填充它,然后我生成了几个线程(或任务),这些线程(或任务)只从它读取,或者只检查一个键是否存在,但永远不要写或改变它。
在这种情况下,使用Dictionary<TKey, TValue> 是否安全,还是必须使用ConcurrentDictionary<TKey, TValue>?
在一般情况下,只要不修改集合,我是否可以假设所有标准集合都支持多个阅读器?
【问题讨论】:
标签: .net .net-4.0 concurrency