<p>Ce qui se passe probablement, c’est que <code>SignalData</code> modifie indirectement le dictionnaire subscribers sous le capot pendant la boucle, ce qui mène à ce message. Vous pouvez le vérifier en changeant</p>
<pre><code class="lang-auto">foreach(Subscriber s in subscribers.Values)
</code></pre>
<p>Par</p>
<pre><code class="lang-auto">foreach(Subscriber s in subscribers.Values.ToList())
</code></pre>
<p>Si j’ai raison, le problème disparaîtra.</p>
<p>L’appel à <code>subscribers.Values.ToList()</code> copie les valeurs de <code>subscribers.Values</code> dans une liste séparée au début du <code>foreach</code>. 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.</p>