0

可能重复:
IEnumerable Linq 方法是线程安全的吗?

快速提问。当其他线程访问它(读取但也写入)时在列表上使用 Where,Single,SingleorDefault 会在枚举异常时导致集合更改吗?

为什么 c# 4.0 没有并发列表?

4

1 回答 1

3

List<T>从多个线程读取是安全的,但根本不支持写入。因此,只要不进行任何更改,您就可以对列表执行多个 LINQ 查询。您只能在需要写入的时候使用ReaderWriterLockSlim来获取写入锁。

为什么 c# 4.0 没有并发列表?

我相信很难创建一个实现与List<T>在排序方面保持相同的保证,但也是线程安全高效的。.NET 4 中的并发集合是高效的,但代价是一些保证(例如在 的情况下进行排序ConcurrentBag<T>)。

于 2012-11-23T09:03:11.530 回答