O ponto de entrada pode ser marcado com o modificador 'async' no CoreCLR?
Na recente postagem de blog de Stephan Cleary sobreAplicativos do console assíncrono no .NET CoreCLR ele nos mostra que no CoreCLR (atualmente em execução no Visual Studio 2015, CTP6), o ponto de entrada "Principal" pode realmente ser marcado comoasync Task
, compile corretamente e execute:
public class Program
{
public async Task Main(string[] args)
{
Console.WriteLine("Hello World");
await Task.Delay(TimeSpan.FromSeconds(1));
Console.WriteLine("Still here!");
Console.ReadLine();
}
}
Fornece a seguinte saída:
Isso é reforçado por uma postagem de blog da equipe do ASP.NET chamadaUm mergulho profundo no tempo de execução do ASP.NET 5:
Além de uma estáticaProgram.Main
ponto de entrada, o KRE suporta pontos de entrada baseados em instância. Você pode até tornar o ponto de entrada principal assíncrono e retornar uma tarefa. Ao fazer com que o ponto de entrada principal seja um método de instância, é possível injetar serviços no aplicativo pelo ambiente de tempo de execução.
Sabemos que até agora,Um ponto de entrada não pode ser marcado com o modificador 'async'. Então, como isso é realmente possível no novo tempo de execução CoreCLR?