У мене виникає ситуація, коли я здійснюю 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;
}