Async ... a cosa serve e come funziona???

venerdì 20 marzo 2015 - 07.51

dansi Profilo | Newbie

Salve ragazzi buongiorno, sono qui a richiedere questa informazione. Ho letto su molti siti che molti utilizzano la classe Async, ma a cosa serve e come si usa? Grazie a tutti

0v3rCl0ck Profilo | Guru

Ciao Daniele, async non è una classe, ma piuttosto un hint che viene dato al compilatore per suggerirgli che il metodo marcato con l'async conterrà metodi asincroni e che dovrà gestire la continuazione dei task a compile time. Per lo sviluppatore una volta creare procedure asincrone, che si sincronizzini tra loro con un opportuno ordine, voleva dire spezzare un metodo in più metodi, portarsi in giro stati, ecc... poi con l'avvento della TPL (task programming language) e i Task, il tutto era migliorato con questa libreria che permetteva di sfruttare questo concetto di Task e di continuazione .ContinueWith():

Task.Start(() => { ..... }) .ContinueWith(t => { .... });

ma anche con quel metodo l'ordine delle istruzione, e il metodo di sviluppo doveva ovviamente cambiare, rendendo di fatto il codice più complicato. Con l'avvento di async/await, si è fatto un ulteriore passo avanti, facendo creare al compilatore la separazione in più metodi e il passaggio di stato, così facendo, nascondendo completamente allo sviluppatore la continuazione di un task e la sua gestione, ritornando ad avere un codice ordinato e meno complesso, anche se questo non vuol dire che non bisogna sapere cosa si sta utilizzando, perchè anche se non si vede, al di sotto si stanno sfruttando parecchi meccanismi che influenzano il comportamento dell'applicazione:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

http://msdn.microsoft.com/it-it/library/hh191443.aspx


Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5