async 与 await 线程调用顺序

发布时间:2020-07-09 13:32:15 作者:VOLVO之悦
来源:网络 阅读:1308

用async做一个多线程下载并在datagridview中即时更新,运行时在达到4个线程同时下载时界面卡顿,多次尝试后是不知道async与await线程调用顺序造成。

进入async方法后在调用await之前代码都在主线程(调用线程)中运行,调用await时及之后的async方法代码将另起线程运行该部分代码,而主线程在遇到await后回到主线程继续执行async后的代码。

将async方法通过声明委托后用begininvoke调用后解决。


过了一段时间再看又忘了,遇到一个async方法中前后调用两次await,我不知作何解释,目前我的理解是运行第一个await后的方法将开启新线程,后面的代码要等第一个await方法运行完后,后面的代码将接着该线程运行下面的代码,直到遇到第二个await后将开启新线程运行第二个await里的方法,第二个await方法后的代码将等待第二个await方法运行完成后接着第二个await的线程继续运行下面的代码。





推荐阅读:
  1. C#中的异步编程async与await
  2. C#5.0中async和await关键字的用法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

async await begininvoke

上一篇:Python3快速入门(十二)——NumPy

下一篇:Oracle 11G安装时遇到了net.bridge.bridge-nf-call-ip6tables"错误

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》