У мене виникає ситуація, коли я здійснюю async
виклик методу, який повертається та IDisposable
екземпляр. Наприклад:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Тепер, перш ніж async
був на сцені, під час роботи з IDisposable
екземпляром цей виклик та код, який використовував змінну "відповідь", будуть загорнуті в оператор, що використовує.
Моє запитання - чи це все-таки правильний підхід, коли async
ключове слово кидається в суміш? Незважаючи на те, що код компілюється, чи використовуватиме оператор, як і очікувалося, в обох прикладах нижче?
Приклад 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;
}