Antarmuka System.IAsyncDisposable
Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.
Di .NET, kelas yang memiliki sumber daya yang tidak dikelola biasanya mengimplementasikan IDisposable antarmuka untuk menyediakan mekanisme untuk merilis sumber daya yang tidak dikelola secara sinkron. Namun, dalam beberapa kasus mereka perlu menyediakan mekanisme asinkron untuk merilis sumber daya yang tidak dikelola selain (atau bukan) yang sinkron. Menyediakan mekanisme seperti itu memungkinkan konsumen untuk melakukan operasi pembuangan intensif sumber daya tanpa memblokir utas utama aplikasi GUI untuk waktu yang lama.
Metode IAsyncDisposable.DisposeAsync antarmuka ini mengembalikan ValueTask yang mewakili operasi pembuangan asinkron. Kelas yang memiliki sumber daya yang tidak dikelola menerapkan metode ini, dan konsumen kelas-kelas ini memanggil metode ini pada objek ketika tidak lagi diperlukan.
Metode asinkron digunakan bersama dengan async
kata kunci dan await
di C# dan Visual Basic. Untuk informasi selengkapnya, lihat Model pemrograman asinkron Tugas di C# atau Pemrograman Asinkron dengan Asinkron dan Tunggu (Visual Basic).
Menggunakan objek yang mengimplementasikan IAsyncDisposable
Jika aplikasi Anda menggunakan objek yang mengimplementasikan IAsyncDisposable
, Anda harus memanggil implementasi objek DisposeAsync ketika Anda selesai menggunakannya. Untuk memastikan sumber daya dirilis bahkan jika terjadi pengecualian, masukkan kode yang menggunakan objek ke dalam pernyataan penggunaan (di C# mulai dari versi 8.0) atau panggil DisposeAsync metode di dalam finally
klausulfinally
/try
IAsyncDisposable
pernyataan. Untuk informasi selengkapnya tentang pola, try
/finally
lihat try-finally (C#) atau Coba... Menangkap... Pernyataan Terakhir (Visual Basic).
Menerapkan IAsyncDisposable
Anda mungkin menerapkan IAsyncDisposable
dalam situasi berikut:
- Saat mengembangkan enumerator asinkron yang memiliki sumber daya yang tidak dikelola. Enumerator asinkron digunakan dengan fitur aliran asinkron C# 8.0. Untuk informasi selengkapnya tentang aliran asinkron, lihat Tutorial: Membuat dan menggunakan aliran asinkron menggunakan C# 8.0 dan .NET Core 3.0.
- Ketika kelas Anda memiliki sumber daya yang tidak dikelola dan melepaskannya memerlukan operasi I/O intensif sumber daya, seperti membersihkan konten buffer perantara ke dalam file atau mengirim paket melalui jaringan untuk menutup koneksi.
DisposeAsync Gunakan metode untuk melakukan pembersihan apa pun yang diperlukan setelah menggunakan sumber daya yang tidak dikelola, seperti membebaskan, melepaskan, atau mengatur ulang sumber daya yang tidak dikelola. Untuk informasi selengkapnya, lihat Menerapkan metode DisposeAsync.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk