c# - System.InvalidOperationException 奇怪的错误
问题描述
有没有人看到这个错误?我无法理解它是什么代码语句,因为它在堆栈跟踪中不可用。
System.InvalidOperationException:集合已修改;枚举操作可能无法执行。在 System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow(Exception exception) 在 System.Reactive.AnonymousSafeObserver
1.OnError(Exception error) at System.Reactive.Concurrency.ObserveOn
1.?.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,并且使用锁定作为同步机制来锁定集合以进行读/写操作。
注意:在整个代码中,我并没有遍历订阅者列表或修改它。
解决方案
您有一个foreach
调用枚举集合的一些更改。这是不允许的。
或者,另一个线程正在同时更改枚举集合,这也会导致异常。
推荐阅读
- c++ - 如何检查用户输入是否以 0 开头
- python - 在 Pygame 中等待用户输入
- u-boot - u-boot 中的 board_init 函数在哪里调用?
- javascript - 在 Heroku 上部署后未获取数据
- image-processing - 我想从扫描的护照中检测文本,也有一些希伯来语文本
- c# - pdf上的图像水印在左上角而不是页面Itext7的中心
- laravel - 如何防止用户在 Laravel 中使用多个 copuon 代码
- javascript - 找不到模块:在 React App 中本地安装 npm 包时无法解决
- scala - foreach 怎么能比循环快?
- javascript - Javascript如何理解Vue文件?