IAsyncDisposable Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakmak için bir mekanizma sağlar.
public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
- Türetilmiş
Açıklamalar
.NET'te yönetilmeyen kaynaklara sahip sınıflar genellikle yönetilmeyen kaynakların zaman uyumlu olarak serbest bırakılmasına yönelik bir mekanizma sağlamak için arabirimini 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 bir 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 içindeki ve await
anahtar sözcükleriyle async
birlikte kullanılır. Daha fazla bilgi için bkz. C# dilinde Görev zaman uyumsuz programlama modeli veya Async ve Await (Visual Basic) ile Zaman Uyumsuz Programlama.
IAsyncDisposable uygulayan bir nesne kullanma
Uygulamanız uygulayan IAsyncDisposable
bir nesne kullanıyorsa, kullanmayı bitirdiğinizde nesnenin DisposeAsync uygulamasını çağırmanız gerekir. Özel durum durumunda bile kaynakların serbest bırakıldığından emin olmak için nesnesini kullanan IAsyncDisposable
kodu using deyimine (sürüm 8.0'dan başlayarak C# dilinde) yerleştirin veya deyiminin bir finally
yan tümcesi içinde yöntemini çağırınDisposeAsync/try``finally
. 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 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 arabelleğin içeriğini bir dosyaya boşaltma veya 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.
Yöntemler
DisposeAsync() |
Yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakma, serbest bırakma veya sıfırlama ile ilişkili uygulama tanımlı görevleri gerçekleştirir. |
Uzantı Metotları
ConfigureAwait(IAsyncDisposable, Boolean) |
Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirildiğini yapılandırıyor. |