Una forma sencilla es simplemente hacer que sus controladores de eventos async
. En primer lugar, agregue el parámetro Async="true"
a la directiva @Page
, y entonces usted debe ser capaz de escribir controladores de eventos asincrónicos tales como:
protected async void Page_Load(object sender, EventArgs e)
{
var client = new WebClient();
var content = await client.DownloadStringTaskAsync("http://www.google.com");
Response.Write(content);
}
digo "debe ser capaz de" porque no he hecho probado esto por mí mismo . Pero debería funcionar
Actualización: Esto hace no trabajo para Page_Load
(ver this MSDN forum thread), pero debería funcionar para otros eventos, tales como pulsaciones de botón.
Actualización: Esto hace trabajo para Page_Load
en ASP.NET 4.5. Además, agregaron comprobaciones si usa incorrectamente un controlador de eventos async
. See this video for details.
Y lo he intentado, no funciona. – Dozer
¡Funciona correctamente! – Dozer
Si la palabra clave await no notificaba a la clase Page sobre la operación asíncrona en Page_Load, ¿por qué sería diferente para los clics de botón? Pero gracias por la actualización que ahora es compatible. – Michael