c#Parallel.Invoke vs Parallel.ForEach-处理数据源并并行修改它

c#Parallel.Invoke vs Parallel.ForEach-处理数据源并并行修改它,c#,entity-framework,parallel-processing,parallel.foreach,parallel.invoke,C#,Entity Framework,Parallel Processing,Parallel.foreach,Parallel.invoke,有人能解释一下在此场景中使用Paralle.Invoke或Parallel.ForEach的路径吗: - query large data from database let's say 1000 records - parallel process this data, save the records back to db, eventually insert new records etc 因此,数据将像列表一样返回,然后我有一些特定的方法,可以根据category属性处理列表中的某些记

有人能解释一下在此场景中使用
Paralle.Invoke
Parallel.ForEach
的路径吗:

- query large data from database let's say 1000 records
- parallel process this data, save the records back to db, eventually insert new records etc
因此,数据将像列表一样返回,然后我有一些特定的方法,可以根据category属性处理列表中的某些记录


我应该使用什么:.ForEach或.Invoke?

几个与彼此无关的不同任务

Parallel.Invoke
几个相互需要的连续任务会产生什么结果

Parallel.ForEach

它指的是加工,所以。。您必须执行哪种处理。取决于您希望执行哪种
处理。在标准的
foreach
/
循环中为
编写处理代码,并将其与
并行循环进行比较。foreach
,查看哪一个更快。还要注意并发插入,并确保记录不会以任何方式耦合。基本上,对于每个记录都会进行一些计算、一些服务调用、更新特定记录并在完全不同的表中插入一些新记录。的可能重复项(请参阅投票数最多的答案)您可以使用喜欢的
并行
处理数据,但必须使用从EF获取数据的同一线程保存数据。您的上下文不是线程安全的。