public class test
{
public async Task Go()
{
await PrintAnswerToLife();
Console.WriteLine("done");
}
public async Task PrintAnswerToLife()
{
int answer = await GetAnswerToLife();
Console.WriteLine(answer);
}
public async Task<int> GetAnswerToLife()
{
await Task.Delay(5000);
int answer = 21 * 2;
return answer;
}
}
如果我想在main()方法中调用Go方法,该怎么做?我正在尝试使用C#的新功能,我知道可以将异步方法钩到事件中,通过触发该事件来调用异步方法。
但是如果我想直接在main方法中调用它,该怎么办?我应该怎么做?
我做了类似以下的事情:
class Program
{
static void Main(string[] args)
{
test t = new test();
t.Go().GetAwaiter().OnCompleted(() =>
{
Console.WriteLine("finished");
});
Console.ReadKey();
}
}
但似乎陷入了死锁,屏幕上没有任何输出。