首页 新闻 会员 周边

带 async/await 的 Task 和 不带 async/await 的 Task,有什么区别?

0
[已解决问题] 解决于 2018-07-05 11:09

Test1Async() 和  Test2Async() ,在Main()方法里都可以正常异步调用。两个方法有什么区别?

static void Main(string[] args)
{
    Console.WriteLine("Hello World!");
    Test1Async();
    Console.WriteLine("Call TestAsync1 OK!");
    Test2Async();
    Console.WriteLine("Call TestAsync2 OK!");
    Console.Read();
}

public async static void Test1Async()
{
    await Task.Run(() =>
    {
        System.Threading.Thread.Sleep(5 * 1000);
        Console.WriteLine("TestAsync1 OK!");
    });
}

public static void Test2Async()
{
    Task.Run(() =>
    {
        System.Threading.Thread.Sleep(5 * 1000);
        Console.WriteLine("TestAsync2 OK!");
    });
}
大豆男生的主页 大豆男生 | 小虾三级 | 园豆:608
提问于:2018-07-03 16:49
< >
分享
最佳答案
0

上面的代码没有在Main方法中Wait(),成功地掩盖了它们的区别

奖励园豆:5
dudu | 高人七级 |园豆:31003 | 2018-07-03 18:31
其他回答(1)
0

async 是为了和Wait配合使用的。
你不用aWait,第一没有办法得到返回值
第二 有时候就是需要上一步执行完了,才下一步,必须wait。
但如果不用异步,界面会有卡顿的感觉。

陆先生 | 园豆:202 (菜鸟二级) | 2019-10-09 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册