我在我的控制台应用程序中调用了一个异步方法。我不希望在awaitable任务完成之前应用程序短暂启动后就退出。看起来我可以这样做:
internal static void Main(string[] args)
{
try
{
Task.WaitAll(DoThisAsync());
}
catch (Exception ex)
{
Console.Error.WriteLine(ex);
throw;
}
}
internal static async Task DoThisAsync()
{
//...
}
但是根据Stephen Cleary的文章,似乎我不能这样做,而应该创建一些异步结束后返回的上下文(例如AsyncContext)。
尽管上面的代码有效,并且在Task.WaitAll(DoThisAsync());
之后在主线程上返回,但为什么我需要使用自定义上下文呢?