Task 单例List<实体> 异常 返回

SqlSugar 处理完成
3 252

方法里面 用的是单例 都是 await  数据库返回 list<实体>

外层 for循环调用  方法


提示 :System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

           系统。InvalidOperationException:集合已被修改;枚举操作可能无法执行。


线程下  是不是 单例 返回的 list<实体>  引用地址是同一个,导致了 方法里面的 List在被多个线程修改;


单独运行1次是没有问题的,但是多个同时任务就会发生集合被修改;


求助,把单例改成每个都实例化,还是有什么可以解决

热忱回答3

  • 已发现问题,已经解决;

    异步方法里面嵌入了  .ForEach( async  vs=>{  vs.ForEach( async vs1 xxxx  })  导致


    仅供参考  ForEach 异步里面   不要再嵌套 ForEach 异步


    0 回复
  • 不好控制结束,导致后部分代码已经前置执行

    0 回复
  • image.png

    0 回复