1 Parallel.ForEach 会用当前线程一起算 所以要注意最好放在 Task.Start里面 将返回await 不然有可能造成死锁类问题。
2 就算你确定是cpu 密集的 也要注意并行度,最好不要超过你的核心数n多倍。
对于cpu密集的操作控制并行度可以用 Parallel 的参数。
如果其中有IO操作 最好用 TPL.Dataflow 库中的ActionBloack
这个要看你的应用场景
是WEB应用程序,还是WINFORM客户端程序
启用并行模式计算有两种方式 ,一是LIST等泛型启用并行计算很简单,使用AsParallel()即可。
二是使用Parallel.For的方式。
这两种方式在场景中使用会些区别,本人有关于此的文章,由于太长就在这里贴出来了