我试图让自己等待和异步,所以我编写了这个小测试应用程序,但是我没有想到的结果。
该程序将继续执行,而不是等待任务完成。
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)