Ho una situazione in cui sto effettuando una chiamata async
a un metodo che restituisce e l'istanza IDisposable
. Per esempio:L'uso di istruzioni e l'attesa di parole chiave si adattano bene in C#
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Ora, prima async
era sulla scena, quando si lavora con un IDisposable
esempio, questa chiamata e il codice che ha utilizzato la variabile "risposta" sarebbe avvolto in un'istruzione using.
La mia domanda è se questo è ancora l'approccio corretto quando la parola chiave async
viene generata nel mix? Anche se il codice viene compilato, l'istruzione using funzionerà come previsto in entrambi gli esempi di seguito?
Esempio 1
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
// Do something with the response
return true;
}
Esempio 2
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
await this.responseLogger.LogResponseAsync(response);
return true;
}
Grazie Jon. Mentre la maggior parte delle cose asincrone è ancora voodoo per me, è abbastanza rassicurante vedere quanto spesso si integri con altre caratteristiche .net e funzioni solo – swingdoctor