我如何让"2"被打印出来?或者实际上,为什么在等待t和t.Wait()时都没有打印出2?
static Task t;
public static async void Main()
{
Console.WriteLine("Hello World");
t = GenerateTask();
await t;
//t.Wait();
Console.WriteLine("Finished");
}
public static Task GenerateTask()
{
var res = new Task(async () =>
{
Console.WriteLine("1");
await Task.Delay(10000);
Console.WriteLine("2");
});
res.Start();
return res;
}
编辑:我正在创建一个任务并返回它,因为在现实生活中,我需要在稍后的不同方法中等待此任务。
编辑2:await Task.Delay只是一个占位符,用于在不同的函数上实际等待。
Main
入口点的有效签名,以避免 避免 async void。 - Theodor ZouliasTask
构造函数(https://blog.stephencleary.com/2014/05/a-tour-of-task-part-1-constructors.html)。 - Stephen Cleary