Avatar ·

Error "Collection was modified; enumeration operation may not execute" en C# al trabajar con un diccionario en WCF

¡Hola, colegas! Estoy escribiendo un servicio WCF que procesa solicitudes de varios clientes simultáneamente. Dentro del servicio uso un diccionario estático `Dictionary` para almacenar datos en caché. Cuando los clientes envían solicitudes, a veces actualizo este diccionario (agrego/elimino elementos) y al mismo tiempo lo leo en un bucle `foreach`. De repente recibo la excepción: "Collection was modified; enumeration operation may not execute". \n\nAquí está el código simplificado:\n\n```csharp\npublic class MyService : IMyService\n{\n private static Dictionary _cache = new Dictionary();\n\n public string GetData(int key)\n {\n // A veces ocurre una adición al diccionario\n if (!_cache.ContainsKey(key))\n {\n _cache.Add(key, FetchFromDatabase(key));\n }\n```