【发布时间】:2014-02-23 14:59:25
【问题描述】:
从List中按索引获取元素是线程安全的吗?
var list = new List<int>();
...
var a = list[i]; //executed from multiple threads. Should this be protected?
【问题讨论】:
-
这基本上取决于列表的实现。
ArrayList不是线程安全的,CopyOnWriteArrayList是... -
如果你只从列表中获取元素,那么它就可以了。如果您也在更改列表(设置、添加、删除),那么您应该锁定集合
-
这取决于你在做什么。并发 reads 没问题。
标签: c#