首页 新闻 会员 周边

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

0
悬赏园豆:10 [已解决问题] 解决于 2020-04-12 15:49

最近在研究异步编程,用的async await task啥的,但是都这几个概念很模糊,还有不太清楚await是干啥的,task又是干啥的,用不用await有什么区别,他们三个之间的联系是什么?求大神指点一二,小弟先谢了~

shuai7boy的主页 shuai7boy | 菜鸟二级 | 园豆:225
提问于:2017-11-19 00:50
< >
分享
最佳答案
0
收获园豆:10
dudu | 高人七级 |园豆:31003 | 2017-11-19 09:51
其他回答(3)
0

线程池的一种写法(附属扩展了一些东西)。

await就是说等待一个执行线程,如果换做没这个简写方式,以前需要多写好几句代码。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-11-19 21:57
0

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

守望星空的那一边 | 园豆:206 (菜鸟二级) | 2017-11-20 09:25
0

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

ensleep | 园豆:1682 (小虾三级) | 2017-11-21 09:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册