任务并行库和await、async有什么区别。引入 await 和 async 的必要性是什么?我看到 TPL 是 C# 4.0 的一部分,await/async 是 C# 5.0 的一部分,但除此之外,基本区别是什么。引入这个新关键字的必要性是什么?
最佳答案
任务并行库是为 parallel programming 设计的- 当您有很多工作要做并且想在多个线程之间拆分这些工作以便您可以使用所有 CPU 内核时。 TPL 最适合 CPU 密集型工作。
Async 和 await 适用于 asynchronous programming - 当你有一个操作(或多个操作)将在未来完成,而你想同时做其他事情。异步最适合 I/O 密集型工作。
有一些重叠。例如,您可以将并行计算视为异步操作,这样它就不会占用您的 UI 线程。此外,TPL 和 async/await 都使用了 Task
类型,尽管它们以非常不同的方式使用它。
关于c# - await 和 async 与 Task 并行库的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18550094/