Error "Collection was modified; enumeration operation may not execute" en C#: ¿cómo solucionarlo?
¡Hola, colegas! Soy nuevo en C# y WCF, y me encontré con un error extraño: "Collection was modified; enumeration operation may not execute".
Tengo un servicio WCF que procesa pedidos. Dentro del servicio uso `ConcurrentDictionary` para almacenar pedidos activos. Periódicamente ejecuto un thread en segundo plano que verifica los estados de los pedidos y elimina los completados. Aquí está el código simplificado:
```csharp
public class OrderService
{
private ConcurrentDictionary _orders = new ConcurrentDictionary();
public void ProcessOrders()
{
// Thread en segundo plano para limpieza
Task.Run(() =>
{
while (true)
{
foreach (var kvp in _orders)
{
if (kvp.Value.Status == OrderStatus.Completed)
{
_orders.TryRemove(kvp.Key, out _);
}
}
Thread.Sleep(1000);
No answers yet.
Inicia sesión para dejar una respuesta