Parallel.ForEach 代替 foreach:多线程执行
问题:
1.migrateList会增加null数据:即使ForEach内的代码块中,同时3个list同时增加,会出现2个299,第三个300(其中有一个为null)
2.migrateList生成的数据,会存在部分数据缺失的情况
//Parallel.ForEach(bingAdsInsertionOrders, new ParallelOptions { MaxDegreeOfParallelism = ConfigHelper.MaxDegreeOfParallelism }, (crmItem) => foreach (var crmItem in bingAdsInsertionOrders) { var migrateItem = _bingAdsInsertionOrderMapSPOrderSvc.Map(crmItem); if (migrateItem == null) { ErrorHandle($"no data can be maped to save.{JsonConvert.SerializeObject(crmItem)}", null); continue; } migrateList.Add(migrateItem); }//);