C# async await
之前一直对async 和 await用法很模糊,一直不得其门而入。为了彻底搞清楚,花费了一番功夫,终是有所收获。现将研究所获分享出来,方便同样疑惑同学少走弯路。
说到async、await,还有一个关键字不得不提,那就是Task。
async用来标记方法是异步方法,方法体内部需要有await配合出现,如果方法体内没有await关键字,则当前方法仍为同步方法,同时编译器也会发出警告。
await 等待的是Task,是一个异步方法。
async方法在开始执行时以同步方式进行。在async方法内部,await对其参数执行一个异步等待。它首先检查操作是否已经完成,如果完成就继续以同步方式运行。否则,直接返回给调用方,留下一个没有完成的Task。一段时间后,操作完成,async方法恢复运行。