1 Parallel.ForEach 会用当前线程一起算 所以要注意最好放在 Task.Start里面 将返回await 不然有可能造成死锁类问题。
2 就算你确定是cpu 密集的 也要注意并行度,最好不要超过你的核心数n多倍。
对于cpu密集的操作控制并行度可以用 Parallel 的参数。
如果其中有IO操作 最好用 TPL.Dataflow 库中的ActionBloack<T>等来控制异步操作并行度