#897 - Costruire HttpHandler asincroni con ASP.NET 2.0

La scrittura di handler asincroni è una delle novità offerte dalla versione 2.0 di ASP.NET.
Con questa tecnica è possibile demandare l'esecuzione di codice particolarmente oneroso ad un thread completamente scollegato dal client, che sfrutta la solita tecnica già utilizzata per le altre funzionalità asincrone offerte dal .NET Framework.

Per creare un HttHandler di tipo asicrono è sufficiente implementare l'interfaccia IHttpAsyncHandler anzichè IHttpHandler. L'interfaccia presenta due metodi BeginProcessRequest e EndProcessRequest, che servono rispettivamente a scrivere il codice associato all'inizio del processo ed alla fine.

Ecco un esempio:

public class MyAsyncHandler:IHttpAsyncHandler
{
  public void ProcessRequest(HttpContext ctx)
  {
    // non utilizzato

  }

  public bool IsReusable
  {
    get
    {
    return false;
    }
  }

  // richiamato quando l'handler comincia ad eseguire

  public IAsyncResult BeginProcessRequest(HttpContext ctx,                      AsyncCallback cb, object obj)
  {
    // in state va impostato il risultato dato da un IAsyncResult

    return state;
  }

  // richiamato alla fine dell'esecuzione

  public void EndProcessRequest(IAsyncResult ar)
  {
    // richiamato quando il thread ha eseguito il codice

    // il Context deve essere reso disponibile attraverso

    // la nostra classe IAsyncResult, perchè HttpContext.Current

    // non è collegata al contesto corrente


  }

}


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC