这个问题,我以前也用到过。其实原因很简单。有些集合,比如List或者字典等,如果你在循环过程中如果判断符合条件后进行:删除或修改子项,那么就会出现这个异常。
为了解决这个问题,你可以采用datatable或数组,这两个类型在遍历循环中,进行删除或修改是不会包这个错误异常的。但是注意遍历的时候不要用foreach,而是用for循环从尾到头遍历,否则一旦删除后索引长度改变,也导致死循环或者索引超出长度的异常。
你的envContext 这个是个什么对象 我觉得你的线程应该是没有问题的 问题就出在这个集合上面 多检查下问题 有可能你多线程操作这个对象就出现这个问题了 你可以给这个对象加上锁 同一时间段只有一个线程可以进来访问这个对象
不要直接在枚举for foreach循环里面添加删除list的元素,这会导致下标失效,可以倒着从后往前循环。