Sfruttare le keyword async e await nelle pagine di ASP.NET Web Forms 4.5

di , in ASP.NET 4.5,

Già dalla versione 2.0, ASP.NET Web Forms consente di sfruttare metodi asincroni all'interno delle pagine marcate con l'attributo Async="true":

<%@ Page Title="Home Page" Async="true" Language="C#" ... %>

Come abbiamo bisto nello script 1033, dal .NET Framework 4.0 è già possibile modellare le operazione asincrone tramite la Task Parallel Library, e in particolare la classe Task. Il codice da scrivere è, però, tutt'altro che intuitivo, perché bisogna implementare una coppia di metodi e gestire, all'interno di essi, lo startup e il termine di queste invocazioni:

private IAsyncResult BeginProcess(object sender, EventArgs e, 
  AsyncCallback callback, object data)
{
  // altro codice qui ..
  return BeginDoingAsyncWork(callback, data);
}

private void EndProcess(IAsyncResult result)
{
  // altro codice qui ..
  var result = EndDoingAsyncWork(result);
}

Con l'avvento del .NET Framework 4.5 e delle keyword async/await, questo modello è stato rivisto ed è sicuramente molto più semplice. In particolare, ora è sufficiente marcare un gestore di un evento come async e, al suo interno, invocare metodi asincroni sfruttando la parola chiave await.

public partial class _Default : Page
{        
  protected async void Page_Load(object sender, EventArgs e)
  {
    string result = await SomeAsyncClass.LongMethodAsync();
    this.lblResult.Text = result;
  }
}

Ovviamente, anche in questo caso, è necessario impostare per la pagina l'attributo Async="true", altrimenti otterremo un errore a runtime.

Commenti

Visualizza/aggiungi commenti

Sfruttare le keyword async e await nelle pagine di ASP.NET Web Forms 4.5 (#1108) 1010 2
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi