我正在寻找一种在C#中获取并发集合的方法,或者至少是一个支持并发 enumerator的集合。现在,我正在迭代的集合发生变化。 InvalidOperationException
我可以深度复制收藏并使用私人副本,但我想知道是否有更好的方法
代码片段:
foreach (String s in (List<String>) callingForm.Invoke(callingForm.delegateGetKillStrings))
{
//do some jazz
}
- 编辑 -
我接受了答案,但也发现我需要确保写入集合的代码也需要尝试获取锁。
private void addKillString(String s)
{
lock (killStrings)
{
killStrings.Add(s);
}
}