2009-12-09 109 views
2

我有一個包含字符的Dictionary<>集合。該集合有多個線程不斷添加和刪除項目。使用字典初始化一個新的List<>集合需要鎖定?C# - 從現有字典創建列表

示例代碼:

List<Character> charsToUpdate = new List<Character>(this.manager.characters.Values); 

回答

7

是。當您使用此構造函數構造List<T>時,它將枚舉Dictionary。這不是線程安全的。

請確保同步(鎖定)字典的訪問權限,以及「添加和刪除字典」中的「多個線程」。