Avatar ·

Erreur "Collection was modified; enumeration operation may not execute" en C# lors du travail avec un dictionnaire dans WCF

Bonjour, collègues ! J'écris un service WCF qui traite les requêtes de plusieurs clients simultanément. À l'intérieur du service, j'utilise un dictionnaire statique `Dictionary` pour mettre en cache les données. Lorsque les clients envoient des requêtes, je mets parfois à jour ce dictionnaire (ajout/suppression d'éléments) et en même temps je le lis dans une boucle `foreach`. Soudain, je rencontre l'exception : "Collection was modified; enumeration operation may not execute". \n\nVoici le code simplifié :\n\n```csharp\npublic class MyService : IMyService\n{\n private static Dictionary _cache = new Dictionary();\n\n public string GetData(int key)\n {\n // Parfois, un ajout au dictionnaire se produit\n if (!_cache.ContainsKey(key))\n {\n _cache.Add(key, FetchFromDatabase(key));\n }\n```