概述
、异步编程的核心是 Task 和 Task 对象,这两个对象对异步操作建模
、它们受关键字 async 和 await 的支持。
3种模式:异步编程模型 (APM) 、基于事件的异步模式 (EAP)、基于任务的异步模式 (TAP)
2种情况: I/O 绑定(访问数据库)、CPU 绑定(执行成本高昂的计算)
对于 I/O 绑定代码,等待一个在 async 方法中返回 Task 或 Task 的操作
对于 CPU 绑定代码,等待一个使用 Task.Run 方法在后台线程启动的操作
要点
、异步代码可用于 I/O 绑定和 CPU 绑定代码
、异步代码使用 Task 和 Task,它们是对后台所完成的工作进行建模的结构
、async 关键字将方法转换为异步方法,这使你能在其正文中使用 await 关键字
、async 方法需要在主体中有 await 关键字
、应用 await 关键字后,它将挂起调用方法,并将控制权返还给调用方,直到等待的任务完成
、仅允许在异步方法中使用 await
、添加 Async 作为编写的每个异步方法名称的后缀
多个异步方法
使用 Task.WhenAll、Task.WhenAny
错误处理
将其放在 try/catch 中