ansync/await 运行流程图

1、流程图:

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

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

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

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

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

相关推荐
xiaoshuaishuai88 小时前
C# 内存管理与资源泄漏
开发语言·c#
z落落12 小时前
C#参数区别
java·算法·c#
影寂ldy12 小时前
C#随机数
开发语言·c#
雪豹阿伟13 小时前
11.C# —— 数组属性、高级方法与 Lambda 表达式
c#·上位机
唐青枫14 小时前
C#.NET YARP 服务发现实战:接入 Consul 和 Kubernetes 动态发现后端服务
c#·.net
largecode14 小时前
座机号码认证如何操作?申请热线实名名片,树立统一官方客服形象
linux·sql·华为·c#·.net·wpf·harmonyos
玉夏15 小时前
【Shader基础】ShaderLab 语法
unity·游戏引擎
小满Autumn17 小时前
WPF 入门:XAML 语法、布局与数据绑定
microsoft·c#·.net·wpf
曹牧17 小时前
LINQ:Select
c#·linq
叶帆17 小时前
【YFIOs】用C#开发硬件之GPIO操作
开发语言·c#