Erro "Collection was modified; enumeration operation may not execute" em C# ao trabalhar com dicionário no WCF
Olá, colegas! Estou escrevendo um serviço WCF que processa requisições de vários clientes simultaneamente. Dentro do serviço, uso um dicionário estático `Dictionary` para cache de dados. Quando os clientes enviam requisições, às vezes atualizo esse dicionário (adiciono/removo elementos) e ao mesmo tempo o leio em um loop `foreach`. De repente, recebo a exceção: "Collection was modified; enumeration operation may not execute".
Aqui está o código simplificado:
```csharp
public class MyService : IMyService
{
private static Dictionary _cache = new Dictionary();
public string GetData(int key)
{
// Às vezes ocorre adição ao dicionário
if (!_cache.ContainsKey(key))
{
_cache.Add(key, FetchFromDatabase(key));
}
// Em outro lugar, por exemplo, em um método de limpeza de cache em segundo plano
// foreach (var item in _cache) { ... } — é aqui que a exceção ocorre
return _cache[key];
}
private void CleanCach