System.IAsyncDisposable arabirimi
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
.NET'te, yönetilmeyen kaynaklara sahip sınıflar genellikle yönetilmeyen kaynakları zaman uyumlu bir şekilde serbest bırakmaya yönelik bir mekanizma sağlamak için arabirimi uygular IDisposable . Ancak bazı durumlarda, zaman uyumlu kaynaklara ek olarak (veya yerine) yönetilmeyen kaynakları serbest bırakmak için zaman uyumsuz bir mekanizma sağlamaları gerekir. Böyle bir mekanizma sağlamak, tüketicinin gui uygulamasının ana iş parçacığını uzun süre engellemeden yoğun kaynak kullanımlı atma işlemleri gerçekleştirmesini sağlar.
IAsyncDisposable.DisposeAsync Bu arabirimin yöntemi, zaman uyumsuz atma işlemini temsil eden bir ValueTask döndürür. Yönetilmeyen kaynaklara sahip sınıflar bu yöntemi uygular ve bu sınıfların tüketicisi artık gerekli olmadığında bir nesne üzerinde bu yöntemi çağırır.
Zaman uyumsuz yöntemler, C# ve Visual Basic'teki ve await
anahtar sözcükleriyle async
birlikte kullanılır. Daha fazla bilgi için bkz . C# dilinde Zaman Uyumsuz Görev programlama modeli veya Zaman Uyumsuz ve Await ile Zaman Uyumsuz Programlama (Visual Basic).
IAsyncDisposable uygulayan bir nesne kullanma
Uygulamanız uygulamasını uygulayan IAsyncDisposable
bir nesne kullanıyorsa, kullanmayı bitirdiğinizde nesnenin DisposeAsync uygulamasını çağırmalısınız. Özel durum durumunda bile kaynakların serbest bırakıldığından emin olmak için nesnesini kullanan kodu using deyimine (sürüm 8.0'dan başlayarak C# dilinde) yerleştirin veya deyiminin DisposeAsync bir finally
yan tümcesi içinde yöntemini çağırıntry
/finally
.IAsyncDisposable
Desen hakkında try
/finally
daha fazla bilgi için bkz . try-finally (C#) veya Try... Yakalamak... Finally Deyimi (Visual Basic).
IAsyncDisposable Uygulama
Aşağıdaki durumlarda uygulayabilirsiniz IAsyncDisposable
:
- Yönetilmeyen kaynaklara sahip zaman uyumsuz bir numaralandırıcı geliştirirken. Zaman uyumsuz numaralandırıcılar, C# 8.0 zaman uyumsuz akışlar özelliğiyle birlikte kullanılır. Zaman uyumsuz akışlar hakkında daha fazla bilgi için bkz . Öğretici: C# 8.0 ve .NET Core 3.0 kullanarak zaman uyumsuz akışlar oluşturma ve kullanma.
- Sınıfınız yönetilmeyen kaynaklara sahip olduğunda ve bunları serbest bıraktığında, ara ara arabelleğindeki içerikleri dosyaya boşaltma veya bir bağlantıyı kapatmak için ağ üzerinden paket gönderme gibi yoğun kaynak gerektiren bir G/Ç işlemi gerekir.
DisposeAsync Yönetilmeyen kaynakları serbest bırakma, serbest bırakma veya sıfırlama gibi yönetilmeyen kaynakları kullandıktan sonra gereken temizleme işlemini gerçekleştirmek için yöntemini kullanın. Daha fazla bilgi için bkz . DisposeAsync yöntemi uygulama.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin