LiXiang98

导航

< 2025年3月 >
23 24 25 26 27 28 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 27 28 29
30 31 1 2 3 4 5
统计
 

最近在项目中,需要将List A循环处理数据,然后将处理好的数据加入的List B中。

使用Parallel.ForEach并发处理List A时,处理好的List B中数据总是存在丢失。

通过排查直接使用ListA.ForEach,List B中数据不会丢失。

后面想到List类型是线程不安全的,然后将List B的类型修改为ConcurrentBag线程安全类,测试发现,ListB数据不会丢失。

 

 
var ListB= new  ConcurrentBag<B>();
 Parallel.ForEach(ListA, i =>
{
     ListB.Add(i)
}

 

posted on   LiXiang98  阅读(241)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
 
点击右上角即可分享
微信分享提示