Execução assíncrona é o futuro do desenvolvimento de aplicações para Windows
Nas versões anteriores do ASP.NET MVC era possível criar Controllers assíncronos herdando a classe AsyncController e usando algumas convenções:
- MyActionAsync: método que retorna void e lança um processo assíncrono
- MyActionCompleted: método que retorna um ActionResult (neste caso será o resultado da Action MyAction)
Para permitir que o MVC gerencie operações assíncronas e passe o resultado para a View, os desenvolvedores tinham que usar o AsyncManager do AsyncController.
Por exemplo, o controller abaixo permite obter uma lista de filmes serializada em Json de forma assíncrona a partir de um serviço OData:
Veja agora como podemos criar a mesma operação assíncrona acima, usando o ASP.NET MVC 4 e o C# 5 com as novas palavras chaves async e await, bem mais simples!:
Como você pode ver no código acima, no ASP.NET MVC 4 continua necessário herdar a classe AsyncController mas não há mais convenções de nomenclatura usando métodos Completed/Async
Referência:
http://www.juliencorioland.net/Archives/en-aspnet-mvc-4-asynchronous-controllers
Por: Pedro Henrique Barbosa Fernandes (http://pedrofernandes.net)