我有一个包含字符的Dictionary<>
集合。该集合具有多个线程不断添加和删除的项目。使用字典初始化新的List<>
集合需要锁吗?
示例代码:
List<Character> charsToUpdate = new List<Character>(this.manager.characters.Values);
答案 0 :(得分:7)
是。使用此构造函数构造List<T>
时,它会枚举Dictionary。这不是线程安全的。
确保同步(锁定)对字典的访问,以及添加和删除字典的“众多线程”。