Tengo el siguiente código:esperan en bloque catch
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync(new Uri("http://badurl"));
}
catch
{
result = await wc.DownloadStringTaskAsync(new Uri("http://fallbackurl"));
}
Básicamente Quiero descargar desde una URL y cuando se produce un error con una excepción Quiero descargar desde otra URL. Tanto el tiempo asincrónico por supuesto. Sin embargo, el código no se compila, a causa de
CS1985 de error: No se puede esperar en el cuerpo de una cláusula catch
OK, que está prohibido por cualquier razón, pero ¿cuál es el patrón de código correcto en este caso?
EDIT:
La buena noticia es que C# 6.0 will likely allow await calls both in catch and finally blocks.
Gracias svick, eso es bastante obvio, algo mejor, más conectado con asíncrono? –
No creo que exista algo así. – svick
En su caso, también puede usar la continuación de tareas. Pero el código en la respuesta de 'svick' es más limpio que el código que usa continuaciones. –