Mam sytuację, w której wykonuję async
wywołanie metody, która zwraca i IDisposable
wystąpienie. Na przykład:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Wcześniej async
było na scenie podczas pracy z IDisposable
instancją, to wywołanie i kod używający zmiennej „response” byłyby opakowane w instrukcję using.
Moje pytanie brzmi, czy nadal jest to właściwe podejście, gdy async
słowo kluczowe jest wrzucane do miksu? Nawet jeśli kod jest kompilowany, czy instrukcja using nadal będzie działać zgodnie z oczekiwaniami w obu poniższych przykładach?
Przykład 1
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
// Do something with the response
return true;
}
Przykład 2
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
await this.responseLogger.LogResponseAsync(response);
return true;
}