Strange "La collection a été modifiée après l'instanciation de l'énumérateur" exception

Peut-être que quelqu'un peut me pointer dans la bonne direction, parce que je suis complètement perplexe sur ce.

J'ai une fonction qui imprime simplement une LinkedList de classes:

    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("------");
    }

La Component objet a fait un custom ToString() appel en tant que tel:

    int Id;
    ...
    public override String ToString()
    {
        return GetType() + ": " + Id;
    }

Cette fonction fonctionne généralement beaux - cependant, je ai couru dans la question que lorsqu'il construit à environ 30 ou alors, les entrées dans la liste, le PrintcomplentList foreach déclaration revient avec un InvalidOperationException: Collection was modified after the enumerator was instantiated.

Maintenant, comme vous pouvez le voir je ne suis pas de modifier le code dans la boucle for, et je n'ai pas explicitement créé les fils, bien que ce soit à l'intérieur d'un XNA environnement (si c'est important). Il convient de noter que l'impression est assez fréquent que la sortie de la Console est de ralentir l'ensemble du programme.

Je suis complètement perplexe, est-ce quelqu'un d'autre de cette?

source d'informationauteur cyberconte