新命名空间System.Collections.Concurrent包含字典,队列和堆栈以及其他类的并发集合。任何人都知道为什么没有ConcurrentList?
我发布了一个新问题,解释了我目前的情况。我更倾向于改变原始问题的整体意义。这是新问题的the link。
答案 0 :(得分:5)
对于从另一个线程更改的数据结构,随机访问没有多大意义。
如果你看一下并发集合,你会发现它们的界面是专为很多线程访问而设计的。我想不出一个有用的类似列表的界面,它适用于多线程代码。
如果从不移动元素,那么随机多线程访问就有意义,但是你有一个数组。
答案 1 :(得分:4)
如果两个线程同时添加了项目,那么您对“订单”的期望是什么?如果您想要的只是一组项目,ConcurrentBag更合适。
答案 2 :(得分:0)
返回2011年I wrote a ConcurrentList<T>
class(可用代码on GitHub),它是线程安全的,无锁定的,并实现了IList<T>
接口的部分。
值得注意的是,不支持任何突变列表而不是Add
的操作;即,它是一个仅附加的集合。因此Insert
,RemoveAt
等不起作用。