Aracılığıyla paylaş


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