Tengo una situación en la que hago una async
llamada a un método que devuelve una IDisposable
instancia. Por ejemplo:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Ahora, antes async
estaba en escena, cuando se trabaja con una IDisposable
instancia, esta llamada y el código que usa la variable "respuesta" se envuelve en una declaración de uso.
Mi pregunta es si ese sigue siendo el enfoque correcto cuando la async
palabra clave se agrega a la mezcla. Aunque el código se compile, ¿seguirá funcionando la instrucción using como se esperaba en los dos ejemplos siguientes?
Ejemplo 1
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
// Do something with the response
return true;
}
Ejemplo 2
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
await this.responseLogger.LogResponseAsync(response);
return true;
}