ansync/await 运行流程图

1、流程图:

2、await 之后的方法是何时执行,如何执行的?

await 的方法在 Task 执行完成之后,通过调用 Finish 方法执行的。

具体的执行步骤是先将 MoveNext 方法注册到 Task 的回调里,然后在 Task 执行完后调用这个方法。

为什么 await 之后的代码会在不同的线程执行?

这个其实是因为 Task 的机制,Task 会被推到线程池里,由线程池挑选一个线程去执行,await 之后的代码其实是由这个线程去执行的,自然就跟 await 的之前的代码不是一个线程。

相关推荐
王子文-上海7 分钟前
大数据实时风控引擎:Spark Streaming、Kafka、Flink与Doris的融合实践
c#·linq
csdn_aspnet2 小时前
使用 C# 源生成器(Source Generators)进行高效开发:增强 Blazor 及其他功能
c#·.netcore
小码编匠3 小时前
C# + OpenCvSharp 轮廓检测详解
后端·c#·.net
z2014z3 小时前
第11章 结构 笔记
笔记·c#
weixin_531638944 小时前
Rokid AR交互开发工具对比
unity·游戏引擎·xr
向上的车轮5 小时前
语言特性适用的场景:卫星、火箭控制系统用什么开发语言?
java·开发语言·c++·c#·c·ada
留待舞人归14 小时前
【Unity3D优化】优化多语言字体包大小
游戏·unity·游戏引擎·unity3d·优化
董先生_ad986ad15 小时前
C# 解析 URL URI 中的参数
前端·c#
xiaowu08020 小时前
C# 中的Async 和 Await 的用法详解
java·开发语言·c#
董先生_ad986ad1 天前
MVVM模式中,BaseViewModel 的 IsBusy 属性的作用
c#