Saya perhatikan bahwa dalam beberapa kasus, Visual Studio merekomendasikan untuk melakukan ini
await using var disposable = new Disposable();
// Do something
bukannya ini
using var disposable = new Disposable();
// Do something
Apa perbedaan antara using
dan await using
?
Bagaimana saya harus memutuskan yang mana yang akan digunakan?
await using
denganIAsyncDisposable
dan Anda hanya dapat menggunakanusing
denganIDisposable
karena tidak ada yang mewarisi dari yang lain. Satu-satunya waktu Anda dapat menggunakan salah satunya adalah jika kelas beton mengimplementasikan keduanya dan kemudian tergantung pada apakah Anda menulis kode asinkron atau tidak.Jawaban:
Sinkronisasi klasik menggunakan
Klasik menggunakan panggilan
Dispose()
metode objek yang mengimplementasikanIDisposable
antarmuka.Setara dengan
Async baru menunggu untuk digunakan
Yang baru menunggu menggunakan panggilan dan menunggu
DisposeAsync()
metode objek yang mengimplementasikanIAsyncDisposable
antarmuka.Setara dengan
The IAsyncDisposable Antarmuka ditambahkan pada
.NET Core 3.0
dan.NET Standard 2.1
.sumber