Saya mengalami situasi di mana saya melakukan asyncpanggilan ke metode yang mengembalikan dan IDisposablecontoh. Sebagai contoh:
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));
Sekarang sebelumnya asyncada di tempat kejadian, ketika bekerja dengan sebuah IDisposableinstance, panggilan dan kode ini yang menggunakan variabel "respon" akan dibungkus dalam pernyataan menggunakan.
Pertanyaan saya adalah apakah itu masih merupakan pendekatan yang benar ketika asynckata 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;
}