【问题标题】:Difference between await and async and Task parallel libraryawait 和 async 与 Task 并行库的区别
【发布时间】:2013-09-04 04:44:47
【问题描述】:

Task Parallel Library 与 await 和 async 有什么区别。引入 await 和 async 的必要性是什么?我看到 TPL 是 C# 4.0 的一部分,await/async 是 C# 5.0 的一部分,但除此之外还有什么基本区别。引入这个新关键字有什么需要?

【问题讨论】:

标签: c# .net c#-4.0 c#-5.0


【解决方案1】:

任务并行库是为parallel programming 设计的 - 当您有很多工作要做并且想要在多个线程之间拆分该工作以便您可以使用所有 CPU 内核时。 TPL 最适合 CPU 密集型工作。

Async 和 await 用于 asynchronous programming - 当您有一个操作(或许多操作)将在未来完成,并且您想在此期间做其他事情时。异步最适合 I/O 密集型工作。

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

【讨论】:

    猜你喜欢
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 2021-09-20
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多