A partire da C# 7.1 il metodo Main può essere implementato in versione asincrona, aggiungendo il modificatore async alla sua firma e rendendo così più semplice l’esecuzione di operazioni asincrone al suo interno, tramite l’utilizzo della parola chiave await.
Quindi, oltre alle versioni classiche del Main, adesso il metodo può restituire Task e Task<int>, e di conseguenza supporta anche le firme seguenti:
static async Task Main(); static async Task <int> Main(); static async Task Main(string[] args); static async Task <int> Main(string[] args);
I seguenti esempi mostrano un metodo Main che al suo interno utilizza il metodo Task.Delay per attendere 2 secondi, prima di terminare la sua esecuzione.
Prima di C# 7.1, sarebbe stato necessario scrivere così:
static void Main(string[] args) { Task.Delay(2000).GetAwaiter.GetResult(); }
Mentre con un async Main si può ora utilizzare il pattern async/await:
static async Task Main(string[] args) { await Task.Delay(2000);<br> }
In attesa di Programmare con C# 8 Guida Completa
questo e altro nella prossima edizione del libro, in uscita fra pochi mesi.