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!
Nenhum comentário:
Postar um comentário