C# 7.1 – Specification – Async Main Method
Con esta característica de C# 7.1, el punto de entrada de una aplicación, puede tener ahora el modificador async.
Recordemos que async/await fue introducido a C# en la especificación C# 5.0 (.NET Framework 4.5).
Así que empezaremos por lo que es un punto de entrada a nuestra aplicación sin tener en cuenta la nueva característica de C# 7.1. Tendríamos por lo tanto, algo parecido a lo siguiente:
public static string Main() { return FooAsync().GetAwaiter().GetResult(); }
Ahora, además de poder seguir usando esta fórmula, también podremos utilizar async de la forma siguiente:
public static async Task<string> Main() { return await FooAsync(); }
Lógicamente, si Main no devuelve nada, podremos utilizar Task como haríamos con async/await.
Como ves, esta nueva característica agregada a la especificación de C# es muy sencilla de comprender, sobre todo si estamos habituados a trabajar con async.
ADVERTENCIA :: La opción de utilizar esta característica en C# dentro de Visual Studio 2017 requiere (de momento), seleccionar las Properties del proyecto, ir a la solapa Build, y dentro de esta a Advanced. Dentro de las propiedades avanzadas del proyecto, deberemos cambiar en el menú desplegable de la versión del lenguaje a la opción C# latest minor version (latest).
¡Happy Coding!