在我的ObservableCollection Framework4.0 C# MVVM应用程序的ViewModel中有一个.NET实例。此ObservableCollection的名称是工作区。此集合是TabControl in View的数据源( TabControl的ItemSource属性绑定到集合)。此集合与两个线程一起使用:线程"A“和线程"B”。线程"A“添加或删除集合中的元素,线程"B”通过foreach循环从集合中读取元素。
foreach (WorkspaceViewModel workspace in this.Workspaces)
{
. . . .
}
有时,当线程"A“在集合中添加元素时,InvalideOperationException在foreach循环中的线程"B”中占有位置。此异常报告:“集合已被修改;枚举操作可能不执行”。如果我把foreach循环替换为for循环,它能解决我的问题吗?
发布于 2013-09-10 23:55:12
不,它不能帮助切换到for循环。
使用并行可观测集合
以下是一个例子:
http://www.codeproject.com/Tips/274373/Concurrent-Observable-Collection
以下是另一个:
http://www.codeproject.com/Articles/208361/Concurrent-Observable-Collection-Dictionary-and-So
你可以通过简单的谷歌搜索找到更多最适合你的。
https://stackoverflow.com/questions/18735481
复制