Ho una situazione in cui sto effettuando una async
chiamata a un metodo che restituisce e IDisposable
istanza. Per esempio:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Ora prima async
era sulla scena, quando si lavora con IDisposable
un'istanza, questa chiamata e il codice che utilizzava la variabile "response" sarebbero stati racchiusi in un'istruzione using.
La mia domanda è se questo è ancora l'approccio corretto quando la async
parola chiave viene lanciata nel mix? Anche se il codice viene compilato, l'istruzione using funzionerà ancora come previsto in entrambi gli esempi seguenti?
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;
}