C# 等待、异步和任务并行库之间的区别

C# 等待、异步和任务并行库之间的区别,c#,.net,c#-4.0,c#-5.0,C#,.net,C# 4.0,C# 5.0,任务并行库与wait和async之间的区别是什么。引入wait和async的必要性是什么?我知道TPL是C#4.0的一部分,而await/async是C#5.0的一部分,但除此之外,还有什么基本区别。引入这个新关键字的必要性是什么?任务并行库的设计目的是为了-当您有大量工作要做,并且希望将这些工作在多个线程之间拆分,以便可以使用所有CPU核心时。TPL最适合CPU密集型工作 Async和await用于将来完成的一个操作(或多个操作),同时您还想做其他事情。异步最适合于I/O绑定的工作 有一些重叠

任务并行库与wait和async之间的区别是什么。引入wait和async的必要性是什么?我知道TPL是C#4.0的一部分,而await/async是C#5.0的一部分,但除此之外,还有什么基本区别。引入这个新关键字的必要性是什么?

任务并行库的设计目的是为了-当您有大量工作要做,并且希望将这些工作在多个线程之间拆分,以便可以使用所有CPU核心时。TPL最适合CPU密集型工作

Async和await用于将来完成的一个操作(或多个操作),同时您还想做其他事情。异步最适合于I/O绑定的工作


有一些重叠。例如,您可以将并行计算视为异步操作,这样就不会占用UI线程。此外,TPL和async/await都使用了
任务
类型,尽管它们的使用方式非常不同。

关键是关于组合。TPL与C#4.0同时发布,但它不是它的一部分,而是.Net 4.0的一部分。C#4.0中没有任何内容与第三方物流相关。