转载一篇 vb.net await 工作顺序

VB.net - 异步编程之async await结构的学习芯艺

在.net中有一种非常先进的异步编程机制,那就是async 和await组成的异步方法调用,用好这两个关键字可使异步程序就象同步代码一样简洁易懂。

async 用于指定一个方法为异步方法,实际上就是告诉编译器该方法内有await等待,需要将此方法中await前部分和await后面的部分分成两个函数处理(如果有多个await那就分成多个),前面的在调用线程中直接同步执行,后面部分作为回调函数 在await等待的线程结束后让系统回调。要知道、async并不会自动为你创建一个线程实现异步,而只是一种线程同步机制的代码书写形式。

async指定的异步方法返回类型只能是下面三种之一
1.void 如果返回类型是void,那么就不能用await去调用这个异步方法
2. Task 该方法需要await调用,但函数本身不需要返回数据
3.Task〈TResult〉 需要await调用,也需要返回一个数据,返回的数据类型即为TResult

显然、这种机制的线程同步是用Task对象来实现的。所以可以认为Task为一种系统信号量之类的封装,用来实现线程间的同步。
————————————————
版权声明:本文为CSDN博主「芯艺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BitFu/article/details/125668127

posted on 2024-01-15 18:39  boy8199  阅读(60)  评论(0编辑  收藏  举报