Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
任务并行库与等待和异步有什么区别。引入 await 和 async 的必要性是什么?我看到 TPL 是 C# 4.0 的一部分,await/async 是 C# 5.0 的一部分,但除此之外还有什么基本区别。引入这个新关键字的必要性是什么?
Task Parallel Library 是为并行编程而设计的——当您有很多工作要做并且想要在多个线程之间拆分该工作以便您可以使用所有 CPU 内核时。TPL 最适合 CPU 密集型工作。
Async 和 await 用于异步编程- 当您有一个操作(或许多操作)将在未来完成,并且您想在此期间做其他事情。异步最适合 I/O 密集型工作。
有一些重叠。例如,您可以将并行计算视为异步操作,这样它就不会占用您的 UI 线程。此外,TPL 和 async/await 都使用该Task类型,尽管它们以非常不同的方式使用它。
Task