使用异步 Main 有什么意义?
What is the point of having async Main?
我们知道,C#7 允许使 Main() 函数异步。
它有什么优势?您可以出于什么目的使用 async Main 而不是普通的?
其实是C#7.1引入了async main。
它的目的是针对您 Main
方法直接调用一个或多个异步方法的情况。在 C# 7.1 之前,您必须对该主要方法引入一定程度的仪式,例如必须通过 SomeAsyncMethod().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。
我们知道,C#7 允许使 Main() 函数异步。
它有什么优势?您可以出于什么目的使用 async Main 而不是普通的?
其实是C#7.1引入了async main。
它的目的是针对您 Main
方法直接调用一个或多个异步方法的情况。在 C# 7.1 之前,您必须对该主要方法引入一定程度的仪式,例如必须通过 SomeAsyncMethod().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。