Ho il seguente codice:aspettano in blocco 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"));
}
Fondamentalmente voglio scaricare da un URL e quando non riesce con un'eccezione Vorrei scaricare da un altro URL. Naturalmente asincrono entrambe le ore. Tuttavia il codice non viene compilato, a causa di
errore CS1985: Impossibile attendere nel corpo di una clausola catch
OK, è proibito per qualsiasi motivo, ma qual è il modello di codice corretto qui?
EDIT:
La buona notizia è che C# 6.0 will likely allow await calls both in catch and finally blocks.
Grazie svick, questo è abbastanza ovvio, niente di meglio, più legato async? –
Non penso che esista qualcosa del genere. – svick
Nel tuo caso, potresti anche utilizzare la continuazione delle attività. Ma il codice nella risposta di 'svick' è più pulito del codice usando le continuazioni. –