PageAsyncTasks vs. Páginas Assíncronas

by Israel Aece 11. December 2007 12:07

Uma pergunta muito pertinente que me fizeram durante a palestra, mais precisamente quando estava falando sobre as páginas assíncronas, é se é ou não possível definir um timeout para a execução da mesma.

Desta forma apenas, não. Para isso, você deve utilizar as chamadas Tarefas Assíncronas. Basicamente ela tem o mesmo conceito das páginas assíncronas, mas permite a definição/suporte de timeout (em segundos), propagação do contexto de segurança para as chamadas assíncronas e, finalmente, a possibilidade de execução paralela das tarefas (pois podemos adicionar N tarefas em cada página).

Abaixo segue a implementação básica desta funcionalidade:

<%@ Page Async="true" AsyncTimeout="15" ... %>

protected void Page_Load(object sender, EventArgs e)
{
    this.RegisterAsyncTask(
        new PageAsyncTask(
            new BeginEventHandler(Inicio),
            new EndEventHandler(Fim),
            new EndEventHandler(ExcedeuTimeout),
            null,
            true)); //Processamento paralelo (default é false)

    this.ExecuteRegisteredAsyncTasks();               
}

private IAsyncResult Inicio(object sender, EventArgs e, AsyncCallback callback, object state) { }

private void Fim(IAsyncResult result) { }

private void ExcedeuTimeout(IAsyncResult result) { }

Tags: ,

ASP.NET | Async

Add comment




  Country flag

biuquote Click to change captcha

  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Host