C# · 12月 27, 2021

c# – Threadsafe foreach列举列表

我需要枚举通用的IList<>的对象.列表的内容可能会改变,因为被其他线程添加或删除,这将会用“已修改的集合”;枚举操作可能无法执行“

在IList上执行线程安全性的好方法是什么?绝对没有克隆整个列表.不可能克隆列表引用的实际对象.

解决方法 克隆列表是最简单和最好的方法,因为它确保您的列表不会从您的下面更改.如果列表太大而无法克隆,请考虑在其读/写之前放置一个锁定.