首页 > 解决方案 > System.InvalidOperationException 奇怪的错误

问题描述

有没有人看到这个错误?我无法理解它是什么代码语句,因为它在堆栈跟踪中不可用。

System.InvalidOperationException:集合已修改;枚举操作可能无法执行。在 System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow(Exception exception) 在 System.Reactive.AnonymousSafeObserver 1.OnError(Exception error) at System.Reactive.Concurrency.ObserveOn1.?.OnErrorPosted(Object error) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 在MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(对象源,委托方法,对象参数,Int32 numArgs,委托 catchHandler)

应用程序是使用 Reactive 的 wpf C#.net。有多个位置使用 Reactive,并且使用锁定作为同步机制来锁定集合以进行读/写操作。

注意:在整个代码中,我并没有遍历订阅者列表或修改它。

标签: c#wpfsystem.reactive

解决方案


您有一个foreach调用枚举集合的一些更改。这是不允许的。

或者,另一个线程正在同时更改枚举集合,这也会导致异常。


推荐阅读