.NET Core 2.0 编写异步方法的步骤

  1. 方法声明中使用 async 关键字

  2. 调用异步方法时使用 await 关键字

    1. await + Task => 返回值类型为 T 的表达式

    2. await + Task => 返回 void 的表达式

  3. 在异步方法中使用正确的返回类型

    1. Task:返回值类型为 TResult

    2. Task:方法内没有 return 语句或 return;

    3. void:仅用于写异步的事件处理器

    4. 其它包含 GetAwaiter 方法的类

  4. 依照约定方法名以 Async 结尾

  5. 方法内至少包含一个 await 表达式

    1. await 操作符通知编译器异步方法在此处无法继续向下执行了,必须等待被 await 的异步进程执行完毕。同时控制权返回给异步方法的调用者

    2. 异步方法的挂机不会造成方法退出,finally 块也不会执行(如果有)

一撇老代码中的异步

在老版本的 C# 和 .NET 框架中,异步编程通过 回调 和 委托 实现。

async/await 重新定义异步编程。
像循环和错误处理都是 async/await 的长项,使用体验远超传统异步编程。

在课程最后一节将展开讲解三种异步编程模式。