首页 新闻 会员 周边 捐助

async await 问题

0
悬赏园豆:40 [待解决问题]

想问一下 为什么 await GetString(); Console.WriteLine("GetStrLengthAsync方法执行结束" + Thread.CurrentThread.ManagedThreadId); 执行不到。

问题补充:

如果在main方法里面添加thread.sleep 可以让下面执行的到 但是 为什么 这里和task的线程是同一个线程,不应该是主线程吗

narojay的主页 narojay | 初学一级 | 园豆:3
提问于:2019-10-11 10:44
< >
分享
所有回答(4)
1

Main 方法中的 task 需要 Wait()

Task<int> task = GetStrLengthAsync();
task.Wait();
dudu | 园豆:30778 (高人七级) | 2019-10-11 10:56

是这个意思吗:await回到调用的main方法,应为没有等待,执行结束之后程序就结束了。
还有一个问题 如果执行的到 为什么划线的和task 的线程是同一个线程

支持(0) 反对(0) narojay | 园豆:3 (初学一级) | 2019-10-11 11:00

@narojay: 参考之前的博问 C# async/await 前后线程的问题

支持(1) 反对(0) dudu | 园豆:30778 (高人七级) | 2019-10-11 11:05

想问一下 博客园能搞一个图片直接拖到编译markdown的页面吗,每次上传感觉不怎么方便 。

支持(0) 反对(0) narojay | 园豆:3 (初学一级) | 2019-10-11 11:49

@narojay: 支持 control+C/V 上传图片

支持(0) 反对(0) dudu | 园豆:30778 (高人七级) | 2019-10-11 11:52

@dudu: 我试着把我桌面的图片ctrl c 在上面的修改问题中间 ctrl v 并不能上传图片

支持(0) 反对(0) narojay | 园豆:3 (初学一级) | 2019-10-11 11:56

@narojay: 这个是 bug ,我们会尽快修复

支持(1) 反对(0) dudu | 园豆:30778 (高人七级) | 2019-10-11 11:58

@narojay: 您好,非常感谢您的反馈,已修复该问题。

支持(1) 反对(0) 博客园团队 | 园豆:5379 (大侠五级) | 2019-10-11 13:58

@博客园团队: 我点击 支持显示的是您已经推荐过 ,应该是您已经支持过把。

支持(0) 反对(0) narojay | 园豆:3 (初学一级) | 2019-10-12 10:30
1

没搞清楚await和task以及线程嘛。

写了那么多“嵌套”Task,你这一闪而过很正常。

通常这种建议:去掉关键字await,自己去写实现代码await,再回来理解await;

花飘水流兮 | 园豆:13615 (专家六级) | 2019-10-11 11:18
0

因为主线程比子线程先跑完,所以窗口就给关掉了

Not丶see | 园豆:349 (菜鸟二级) | 2019-10-12 11:31
0

Main 最后写 Console.ReadLine();
不然会关掉控制台

geass.. | 园豆:1821 (小虾三级) | 2019-10-12 15:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册