【发布时间】:2014-05-31 05:50:37
【问题描述】:
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
我正在添加/删除不在 UI 线程上的 ObservableCollection。
我有一个方法名称 EnqueueReport 要添加到集合中,还有一个 DequeueReport 要从集合中删除。
步骤流程如下:-
- 1.在请求新报告时调用 EnqueueReport
- 每隔几秒调用一个方法来检查报告是否生成(这有一个 foreach 循环检查 ObservableCollection 中所有报告的生成状态)
- 如果生成报告,则调用 DequeueReport
我对 C# 库的了解不多。有人可以指导我吗?
【问题讨论】:
-
使用 .net 框架,您无法绑定到可观察集合,然后在 UI 线程之外对其进行编辑。围绕这一点有一些模式,包括延迟 UI 更新、批量插入或创建 CollectionView 的线程安全类实现。
标签: c# thread-safety xamarin observablecollection