10 de outubro de 2012

Método Assíncrono em Asp.Net C#

Boa tarde pessoal!

A alguns dias atrás precisei resolver um problema de timeout ao fazer upload e processamento de um arquivo texto em uma aplicação Asp.Net Web Forms.

A solução adotada foi a utilização de um método assíncrono que ficou responsável por fazer o processamento do arquivo não bloqueando assim o request da página.

Segue exemplo de chamada de um método assíncrono:

 public delegate void MethodInvoker();  
 private void Executar()  
 {  
     // sleep for 1,6 min.  
     Thread.Sleep(100000);  
     // conteudo do processamento assíncrono  
 }  
 protected void btnExecutar_Click(object sender, EventArgs e)  
 {  
     // create a delegate of MethodInvoker poiting to Executar  
     MethodInvoker simpleDelegate = new MethodInvoker(Executar);  
     // Calling Executar Async  
     simpleDelegate.BeginInvoke(null, null);  
 }  

No exemplo acima o evento btnExecutar_Click irá disparar a execução assíncrona do método Executar utilizando o delegate MethodInvoker criado no início do código.

É isso aí pessoal, um exemplo funcional de uma chamada assíncrona.

Até o próximo!

Bem-vindos!

Sejam bem-vindos ao meu blog!

Aqui postarei diversos assuntos voltados ao desenvolvimento de software, assim como soluções para problemas do cotidiano, testes com novas tecnologias, frameworks e demais utilidades no mundo da programação.

Fiquem a vontade para comentar, opinar ou sugerir.

Abraços.