IAsyncDisposable Antarmuka

Definisi

Menyediakan mekanisme untuk melepaskan sumber daya yang tidak dikelola secara asinkron.

public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
Turunan

Keterangan

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 dari antarmuka ini mengembalikan ValueTask yang mewakili operasi penghapusan 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 IAsyncDisposable (di C# mulai dari versi 8.0) atau panggil metode di dalam klausul DisposeAsync dari pernyataan finallytry/. Untuk informasi selengkapnya tentang pola try/finally, lihat try-finally (C#) atau Pernyataan Try...Catch...Finally (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 yang intensif sumber daya, seperti memindahkan konten buffer perantara ke dalam file atau mengirimkan 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.

Metode

Nama Deskripsi
DisposeAsync()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola secara asinkron.

Metode Ekstensi

Nama Deskripsi
ConfigureAwait(IAsyncDisposable, Boolean)

Mengonfigurasi bagaimana menunggu tugas yang dikembalikan dari asinkron sekali pakai akan dilakukan.

Berlaku untuk