ansync/await 运行流程图

1、流程图:

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

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

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

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

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

相关推荐
arron88997 分钟前
C# 项目源码进行全面的技术架构和调用逻辑分析。以下是系统性的技术方案
开发语言·架构·c#
一个帅气昵称啊1 小时前
.Net使用AgentFramework进行多Agent工作流编排-智能体AI开发
c#·.net·agentframework
czhc11400756631 小时前
Winform126 DataGrIdView ListView
c#·winform
猫不在2 小时前
MVC和MVVM
unity
老朱佩琪!2 小时前
在Unity中实现状态机设计模式
开发语言·unity·设计模式
csdn_aspnet2 小时前
C# .NETCore json字符串压缩为一行
c#·json·.netcore
斯内科2 小时前
C#验证拉马努金圆周率公式
c#·拉马努金圆周率
FuckPatience2 小时前
C# BinarySearch 的返回值
开发语言·数据结构·c#
憨辰3 小时前
Unity I2多语言拆分方案【内存、包体⬇️】
unity·游戏引擎
27669582923 小时前
闪购商家端 mtgsig
java·python·c#·node·c·mtgsig·mtgsig1.2