Возможно, кто-то может указать мне в правильном направлении, потому что я полностью в тупике.
У меня есть функция, которая просто распечатывает LinkedList классов:
LinkedList<Component> components = new LinkedList<Component>();
...
private void PrintComponentList()
{
Console.WriteLine("---Component List: " + components.Count + " entries---");
foreach (Component c in components)
{
Console.WriteLine(c);
}
Console.WriteLine("------");
}
Объект Component
фактически имеет пользовательский вызов ToString()
как таковой:
int Id;
...
public override String ToString()
{
return GetType() + ": " + Id;
}
Эта функция, как правило, работает нормально - однако я столкнулся с проблемой, что при ее создании примерно до 30 или около того записей в списке оператор PrintcomplentList
foreach
возвращается с InvalidOperationException: Collection was modified after the enumerator was instantiated.
Теперь, когда вы видите, я не изменяю код внутри цикла for, и я не создал явно нити, хотя это находится в среде XNA (если это имеет значение). Следует отметить, что распечатка достаточно частая, что вывод консоли замедляет работу программы в целом.
Я полностью в тупике, кто-нибудь еще там сталкивается с этим?