小编sQu*_*r3l的帖子

任务不等待完成

我试图让自己等待和异步,所以我编写了这个小测试应用程序,但是我没有想到的结果。

该程序将继续执行,而不是等待任务完成。

class Program
{
    static void Main(string[] args)
    {
        var task = new Task(Run);
        task.Start();
        task.Wait();

        Console.WriteLine("Main finished");
        Console.ReadLine();
    }

    public async static void Run()
    {
        var task = Task.Factory.StartNew(() =>
        {
            Console.WriteLine("Starting");
            Thread.Sleep(1000);
            Console.WriteLine("End");
        });

        await task;
        Console.WriteLine("Run finished");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出量

Main finished
Starting
End
Run finished
Run Code Online (Sandbox Code Playgroud)

如果我将“等待任务”替换为“ task.Await()”,则它将按预期产生运行

Starting
End
Run finished
Main finished
Run Code Online (Sandbox Code Playgroud)

c# asynchronous

2
推荐指数
1
解决办法
647
查看次数

标签 统计

asynchronous ×1

c# ×1