IAsyncDisposable Arabirim

Tanım

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 IAsyncDisposablebir 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.

Şunlara uygulanır