集合已修改; 列舉作業可能尚未執行。

System.InvalidOperationException: 集合已修改; 列舉作業可能尚未執行。

這篇介紹System.InvalidOperationException: 集合已修改; 列舉作業可能尚未執行。

發生情境

1
2
3
foreach(var list in lists) //當多執行緒或非同步同時對List操作時發生
{
}

解決方法

1
2
3
foreach(var list in lists.ToArray()) //將 List<T> 的項目複製到新的陣列。
{
}