Implementazione asincrona del metodo Main

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.