我正在尋找一種在C#中獲取併發集合或至少支持併發枚舉器的集合的方法。現在,當我迭代的集合發生變化時,我得到一個InvalidOperationException異常。我可能只是深拷貝的收集和使用私人拷貝工作,但我不知道是否有可能是一個更好的辦法C#中的併發集合
代碼片段:
foreach (String s in (List<String>)callingForm.Invoke(callingForm.delegateGetKillStrings))
{
//do some jazz
}
- 編輯 -
我把答案還發現我需要確保寫入集合的代碼也需要嘗試鎖定。
private void addKillString(String s)
{
lock (killStrings)
{
killStrings.Add(s);
}
}