Tengo el siguiente código:
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 falla con una excepción, quiero descargar desde otra URL. Ambos tiempos asincrónicos, por supuesto. Sin embargo, el código no se compila, debido a
error CS1985: No se puede esperar en el cuerpo de una cláusula de captura
Está bien, está prohibido por cualquier motivo, pero ¿cuál es el patrón de código correcto aquí?
EDITAR:
La buena noticia es que C # 6.0 probablemente permitirá llamadas en espera tanto en los bloques de captura como de finalmente .