Saya mengalami situasi di mana saya melakukan async
panggilan ke metode yang mengembalikan dan IDisposable
contoh. Sebagai contoh:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Sekarang sebelumnya async
ada di tempat kejadian, ketika bekerja dengan sebuah IDisposable
instance, panggilan dan kode ini yang menggunakan variabel "respon" akan dibungkus dalam pernyataan menggunakan.
Pertanyaan saya adalah apakah itu masih merupakan pendekatan yang benar ketika async
kata kunci dimasukkan ke dalam campuran? Meskipun kode dikompilasi, akankah pernyataan using tetap berfungsi seperti yang diharapkan pada kedua contoh di bawah?
Contoh 1
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
// Do something with the response
return true;
}
Contoh 2
using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
await this.responseLogger.LogResponseAsync(response);
return true;
}