什么是异步
启动程序时,系统会在内存中创建一个新的进程。进程是构成运行程序的资源的集合。进程是构成运行程序的资源的集合。这些资源包括虚地址空间,文件句柄和许多其他程序运行所需的东西
在进程内部,系统创建了一个称为线程的内核(kernel)对象,它代表了真正执行的程序(线程是执行进程 的简称)。一旦进程建立,系统会在Main方法的第一行语句处就开始线程的执行
async/await 特性的结构
异步的方法在处理完成之前就返回到调用方法 特性由三个部分组成:
什么是异步方法
异步方法在完成其工作之前返回到调用方法,然后在调用方法继续执行的时候完成其工作
返回类型必须是下面的三种之一:
任何返回Task<T>类型的异步方法其返回值必须为T类型或可以隐式转换为T的类型
异步方法的控制流
异步方法的结构包含三个不同的区域
当达到await 表达式时,异步方法将控制返回到调用方法。如果方法的返回类型为Task或Task<T>类型,将创建一个Task对象,表示需异步完成的任务和后续,然后将该Task返回到调用方法
await 表达式
await 表达式指定了一个异步执行的任务。语法如下,由await 关键字和一个空闲对象(陈我给任务)组成,这个任务可能是一个Task类型的对象,也可能不是。默认情况下,这个任务在当前线程异步运行
await task
C#图解教程第四版 410页