Avatar ·

C#中的错误"Collection was modified; enumeration operation may not execute":如何修复?

大家好,同事们!我是C#和WCF的新手,遇到了一个奇怪的错误:"Collection was modified; enumeration operation may not execute"。 我有一个WCF服务,用于处理订单。在服务内部,我使用`ConcurrentDictionary`来存储活动订单。我定期启动一个后台线程,检查订单状态并删除已完成的订单。以下是简化代码: ```csharp public class OrderService { private ConcurrentDictionary _orders = new ConcurrentDictionary(); public void ProcessOrders() { // 后台清理线程 Task.Run(() => { while (true) { foreach (var kvp in _orders) { if (kvp.Value.Status == OrderStatus.Completed) { _orders.TryRemove(kvp.Key, out _); } } Thread.Sleep(1000);