为了账号安全,请及时绑定邮箱和手机立即绑定

C# 中await前后执行线程的问题

C# 中await前后执行线程的问题

C#
潇湘沐 2018-08-21 10:09:58
今天有点疑惑就写了个测试的代码,发现控制台和Winform中不一样比如:控制台:...Main(){  Test(); }private static async void Test(){Show("Test.Before");await Task.Run(() => { Thread.Sleep(2000); Show("Test.Task"); });Show("Test.After");//输出字符串和当前线程}private static void Show(string str){Console.WriteLine($"{str}:{Thread.CurrentThread.ManagedThreadId}\r\n");}输出:Test.Before:1Test.Task:3Test.After:3 Winform中:...test(){ Test(); }private async void Test(){Show("Test.Before");await Task.Run(() => { Thread.Sleep(2000); });Show("Test.After");//输出字符串和当前线程}public void Show(string str){richTextBox1.AppendText($"{str}:{Thread.CurrentThread.ManagedThreadId}\r\n");}输出:Test.Before:1Test.After:1 为什么这两个不一样呢?新手求解答
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

对于当前运行的winform程序,始终只有一个UI线程


查看完整回答
反对 回复 2018-09-11
  • 1 回答
  • 0 关注
  • 1083 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信