【发布时间】:2012-01-26 01:59:46
【问题描述】:
ReadOnlyCollection(of T) 的文档指出:
A ReadOnlyCollection(Of T)可以同时支持多个读取器,只要不修改集合即可。即便如此,通过集合进行枚举本质上不是线程安全的过程。为了保证枚举过程中的线程安全,可以在整个枚举过程中锁定集合。要允许集合被多个线程访问以进行读写,您必须实现自己的同步。
我的问题是关于粗体部分:
- 为什么通过集合枚举本质上不是线程安全的
- 可能的影响是什么,以及
- 常用的解决方法有哪些?
【问题讨论】:
-
天啊。我一直在与 .NET 上的线程安全列表作斗争太久了。在此处查看以前的一些讨论:stackoverflow.com/questions/550616/… 和/或此处:stackoverflow.com/questions/66622/…
标签: .net multithreading concurrency thread-safety immutability