110,570
社区成员
发帖
与我相关
我的任务
分享
线程安全
此类型的公共静态(在 Visual Basic 中为 Shared)成员是线程安全的。但不能保证任何实例成员是线程安全的。
只要不修改该集合,List<T> 就可以同时支持多个阅读器。从头到尾对一个集合进行枚举在本质上不是一个线程安全的过程。在枚举与一个或多个写访问竞争的罕见情况下,确保线程安全的唯一方法是在整个枚举期间锁定集合。若要允许多个线程访问集合以进行读写操作,则必须实现自己的同步。
Add和Remove显然是“实例成员”方法,并不线程安全
既然你不涉及遍历,在Add和Remove时随便找个对象lock了就行了,比如lock(lst)
--- 当然,你得保证你的代码逻辑本身是“线程安全”的,lock只是保证List本身操作的完整性