我是靠谱客的博主 高高樱桃,这篇文章主要介绍Collection was modified, enumeration operation may not execute 报错,现在分享给大家,希望可以做个参考。
C# 报错:Collection was modified; enumeration operation may not execute【已解决】
出现这个异常往往是在遍历 List 的过程中,因为在其他位置对 List 进行了修改(增、删、改),导致在遍历的时候出现 InvalidOperationException 的异常。
这个情况大多出现在多线程操作同一个 List 的时候。为了避免出现这个问题,我们可以给操作进行加锁,在获取锁时才能进行相应的操作,示例如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27public class LockListInMultThread { private List<string> chains = new List<string>(); private object lockobj = new object(); public void ReadAndDoXxx() { lock(lockobj) { chains.ForEach(s => { // todo .... Console.Out.WriteLine("=> " + s); }); } } // 可能在不同的线程进行调用 public void AddNew(string s) { lock (lockobj) { // 其他修改 chains.Add(s); } } }
亲测可用。
如果发现有用的话,希望能点个赞或者评论一下哈,造福后面的同学。
最后
以上就是高高樱桃最近收集整理的关于Collection was modified, enumeration operation may not execute 报错的全部内容,更多相关Collection内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复