Async e await sono le nuove keyword che semplificano la gestione di procedure asincrone per le moderne applicazioni.
Nella giornata di ieri di PDC 2010 a Redmond, la sessione di Hejlsberg ha introdotto le future caratteristiche dei linguaggi su cui Microsoft sta lavorando per il prossimo aggiornamento.
In questi anni l'evoluzione del .NET Framework ha portato sia all'introduzione di nuove caratteristiche come Generics, LINQ o parallel framework ma anche funzionalità volte a semplificare la scrittura del codice, e quindi a ridurre i possibili errori. Tra le funzionalità più interessanti presentate nella sessione di Hejlsberg troviamo due nuove keyword: async e await che possiamo utilizzare per gestire con semplicità processi la cui durata si protrae nel tempo, lasciando inalterata l'utilizzabilità dell'applicazione.
Il paradigma del modello asincrono è già noto agli sviluppatori da diverso tempo ed è sempre più utilizzato nelle moderne applicazioni, così come le funzionalità di "operazioni concorrenti" introdotte con il parallel framework: come abbiamo detto, le due nuove keyword semplificano la gestione del patter asincrono preparando internamente un codice che utilizza le funzionalità di Task proprie del parallel framework.
L'utilizzo è molto semplice, si decora con la key async un metodo che esegue un'operazione che può protrarsi nel tempo e si antepone alla funzione interna la key await:
public async void LoadRss(Uri uri) { WebClient client = new WebClient(); var data = await client.DownloadDataTaskAsync(uri); XDocument doc = XDocument.Parse(data); //... }
L'espressione await dice al compilatore di sospendere l'esecuzione del metodo e di ritornare al chiamante, nella fattispecie DownloadStringTaskAsync è il metodo omologo a DownloadString che restituisce un Task
Proprio in virtù che il metodo restituisce un oggetto Task
Al termine dell'operazione, il codice riprende dalla key await come se non fosse mai uscito, quindi risulta consistente anche un'eventuale gestione try/catch.
La semplicità di utilizzo di queste nuove funzionalità apre una moltitudine di impieghi nelle nostre applicazioni; per approfondire è possibile scaricare la documentazione per C# e per VB, oltre alla libreria per Visual Studio in versione CTP.
Vuoi restare aggiornato in tempo reale su PDC10? Segui il nostro speciale!
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rilasciato Entity Framework 4.3
Rilasciata la versione 1 del Kinect for Windows SDK: ecco tutte le novità
Annunciata la licenza commerciale di Kinect for Windows: dal primo febbraio 2012
Kinect for Windows arriva alla beta 2
Windows Azure SDK giunge alla versione 1.5
Disponibile la preview del .NET Framework 4.5
Rilasciata ASP.NET MVC 4 Developer Preview
Disponibile l'Update 1 per Entity Framework 4.1
Disponibile la June 2011 CTP di Entity Framework
Prima beta per il Kinect SDK per Windows: natural UI alla portata dei PC