众所周知,C#7允许使Main()函数异步。
它有什么优势?出于什么目的,您可以使用异步Main而不是普通的?
答案 0 :(得分:20)
实际上是C#7.1引入了异步main。
它的目的是在Main
方法直接调用一个或多个异步方法的情况下。在C#7.1之前,您必须为该主要方法引入一定程度的仪式,例如必须通过SomeAsyncMethiod().GetAwaiter().GetResult()
调用这些异步方法。
能够将Main
标记为async
简化该仪式,例如:
static void Main(string[] args) => MainAsync(args).GetAwaiter().GetResult();
static async Task MainAsync(string[] args)
{
await ...
}
变为:
static async Task Main(string[] args)
{
await ...
}
有关使用此功能的详细说明,请参阅C# 7 Series, Part 2: Async Main。