У меня возникла ситуация, когда я вызываю вызов async
к возвращаемому методу и экземпляру IDisposable
. Например:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Теперь перед тем, как async
был на сцене, при работе с экземпляром IDisposable
этот вызов и код, который использовал переменную "response", были бы завернуты в оператор using.
Мой вопрос заключается в том, является ли этот подход правильным, когда ключевое слово async
выбрано в миксе? Несмотря на то, что код компилируется, будет ли выполняться оператор using по-прежнему в обоих примерах ниже?
Пример 1
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
// Do something with the response
return true;
}
Пример 2
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
await this.responseLogger.LogResponseAsync(response);
return true;
}