La collection a été modifiée ; l'opération d'énumération ne peut pas s'exécuter

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

La collection a été modifiée ; l'opération d'énumération ne peut pas s'exécuter

Message par ForumBot »

La collection a été modifiée ; l’opération d’énumération ne peut pas s’exécuter

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: La collection a été modifiée ; l'opération d'énumération ne peut pas s'exécuter

Message par ayi »

Ce qui se passe probablement, c’est que SignalData modifie indirectement le dictionnaire subscribers sous le capot pendant la boucle, ce qui mène à ce message. Vous pouvez le vérifier en changeant


foreach(Subscriber s in subscribers.Values)


Par


foreach(Subscriber s in subscribers.Values.ToList())


Si j’ai raison, le problème disparaîtra.


L’appel à subscribers.Values.ToList() copie les valeurs de subscribers.Values dans une liste séparée au début du foreach. Rien d’autre n’a accès à cette liste (elle n’a même pas de nom de variable !), donc rien ne peut la modifier à l’intérieur de la boucle.

Répondre

Revenir à « .NET & C# »