我应该何时使用async / await,何时应该在C#中使用parallel.foreach?并行和异步/等待是否有同样的目的? 它们有什么不同?
答案 0 :(得分:88)
async / await是关于异步,而Parallel.ForEach
是关于 parallelism 。它们是相关的概念,但不一样。
Parallel.ForEach
。
async / await用于当前操作在特定异步操作完成之前不能再进行任何操作,但您不想阻止当前线程时。这在两种情况下特别有用:
您可以通过启动将调用Parallel.ForEach
的新任务,然后等待该任务来组合并行性和异步性。 (就像一个例子。)