Revisão Atual postado em artigos TechNet por Márcio S Silva em 22/8/2013 10:40:14
Para todo chamador Async obrigatoriamente necessita de pelo menos uma expressão de espera ou Await dentro da classe. Isso fara que a classe espere terminar inteira até que retorne novamente ao ponto do chamador. Métodos Async/Await são muito úteis em métodos que trabalhem com arquivos e/ou outros tipos que fazem com que tenha uma carga de tempo significativa.
Abaixo um exemplo de uma chamada simples com Async que substitui um EventHandler de um click do mouse, ou seja, executa em paralelo.
Referências extras podem ser obtidas atraves do site do msdn
Async
Aplicativos que tem necessidade de executar muitas tarefas ao mesmo tempo muitas vezes ficam bloqueados à espera que termine uma tarefa para concluir outras tantas. Visto isso foram criados o conceito de pilhas e execução em Threads, pai da execução assíncrona.
A definição do modificador Async em uma classe, quer dizer que essa classe é uma classe assíncrona e que independente de sua conclusão, outros recursos podem serem executados simultaneamente pelo chamador, e sendo assim, não ficará bloqueado
até que a tarefa tenha sido completada.
Await
Para todo chamador Async obrigatoriamente necessita de pelo menos uma expressão de espera ou Await dentro da classe. Isso fara que a classe espere terminar inteira até que retorne novamente ao ponto do chamador. Métodos Async/Await são muito úteis em métodos que trabalhem com arquivos e/ou outros tipos que fazem com que tenha uma carga de tempo significativa.
Abaixo um exemplo de uma chamada simples com Async que substitui um EventHandler de um click do mouse, ou seja, executa em paralelo.
01.
public
Form1()
02.
{
03.
InitializeComponent();
04.
05.
button1.Click+= async (sender, e) =>
06.
{
07.
await
Teste();
08.
};
09.
}
10.
11.
async
Task Teste()
12.
{
13.
await
Task.Delay(10000);
14.
MessageBox.Show(
"Issoé um teste de Async!"
);
15.
}
Referências extras
Referências extras podem ser obtidas atraves do site do msdn
- http://msdn.microsoft.com/pt-br/library/vstudio/hh191443.aspx
- http://msdn.microsoft.com/pt-br/library/vstudio/hh156513.aspx
Tags: stub