码迷,mamicode.com
首页 > 其他好文 > 详细

async中await是干啥的,用不用有什么区别?

时间:2018-09-12 11:03:12      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:停止   简单   star   art   相对   编程   就会   表示   传统   

最近在研究异步编程,用的async await task啥的,但是都这几个概念很模糊,还有不太清楚await是干啥的,task又是干啥的,用不用await有什么区别,他们三个之间的联系是什么?

task是对线程的一种封装,启动一个任务可以用Task.Run(),任务工厂start,new Task().Start()等.async一般用在方法前,表示这个方法是一个异步方法,一个asynctask开始后主线程并不会停止,还会继续往下执行,碰到await就会停止等待一个任务执行结束.相对于传统的线程或者以前的异步模型,更加简单,语法更简洁。

这么理解,代码执行到int task=await Async();的时候,会将这行代码以下的(本行代码所在的函数中)所有代码,转换为一个委托,然后执行开一个新的线程执行Async();,执行完成了以后,拿到了task,再继续执行刚刚的委托。

async中await是干啥的,用不用有什么区别?

标签:停止   简单   star   art   相对   编程   就会   表示   传统   

原文地址:https://www.cnblogs.com/yanglang/p/9633159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!