我是靠谱客的博主 高高樱桃,最近开发中收集的这篇文章主要介绍Collection was modified, enumeration operation may not execute 报错,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
C# 报错:Collection was modified; enumeration operation may not execute【已解决】
出现这个异常往往是在遍历 List 的过程中,因为在其他位置对 List 进行了修改(增、删、改),导致在遍历的时候出现 InvalidOperationException 的异常。
这个情况大多出现在多线程操作同一个 List 的时候。为了避免出现这个问题,我们可以给操作进行加锁,在获取锁时才能进行相应的操作,示例如下:
public 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 was modified, enumeration operation may not execute 报错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复