【发布时间】:2011-05-12 13:30:45
【问题描述】:
我有一个填充List<T> 的主线程。此外,我创建了一个将在不同线程上执行的对象链,需要访问列表。原始列表在生成后将永远不会被写入。我的想法是将列表作为IEnumerable<T> 传递给在其他线程上执行的对象,主要是因为不允许那些实现这些对象的对象错误地写入列表。换句话说,如果保证不写入原始列表,那么多个线程在IEnumerable上使用.Where或foreach是否安全?
如果原始集合从未更改,我不确定迭代器本身是否是线程安全的。
【问题讨论】:
标签: c# .net asp.net multithreading