Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamanızın oluşturduğu nesnelerin çoğu için bellek yönetimini işlemek için .NET çöp toplayıcısına güvenebilirsiniz. Ancak yönetilmeyen kaynaklar içeren nesneler oluşturduğunuzda, bu kaynakları kullanmayı bitirdiğinizde açıkça serbest bırakmanız gerekir . Yönetilmeyen kaynakların en yaygın türleri; dosyalar, pencereler, ağ bağlantıları veya veritabanı bağlantıları gibi işletim sistemi kaynaklarını sarmalayan nesnelerdir. Atık toplayıcı yönetilmeyen bir kaynağı kapsülleyen bir nesnenin ömrünü izleyebilse de, yönetilmeyen kaynağı serbest bırakma ve temizlemeyi bilmez.
Türleriniz yönetilmeyen kaynaklar kullanıyorsa aşağıdakileri yapmalısınız:
Dispose desenini uygulayın. Bu, yönetilmeyen kaynakların belirleyici sürümünü etkinleştirmek için bir IDisposable.Dispose uygulama sağlamanızı gerektirir. Sizin türünüzdeki bir tüketici, nesneye (ve kullandığı kaynaklara) artık ihtiyaç duyulmadığında Dispose'yı çağırır. Dispose yöntemi yönetilmeyen kaynakları hemen serbest bırakır.
Sizin türündeki bir tüketicinin çağrıyı Disposeunutması durumunda, yönetilmeyen kaynaklarınızın serbest bırakılması için bir yol sağlayın. Bunu yapmanın iki yolu vardır:
Yönetilmeyen kaynağınızı sarmak için güvenli bir tutacak kullanın. Önerilen teknik budur. Güvenli tutamaklar System.Runtime.InteropServices.SafeHandle soyut sınıftan türetilir ve sağlam bir Finalize yöntem içerir. Güvenli bir tanıtıcı kullandığınızda, IDisposable arabirimini uygulayıp Dispose uygulamanızda güvenli tanıtıcınızın IDisposable.Dispose yöntemini çağırmanız yeterlidir. Güvenli tanıtıcının Dispose yöntemi çağrılmazsa, sonlandırıcısı çöp toplayıcı tarafından otomatik olarak çağrılır.
—veya—
Sonlandırıcı tanımlayın. Sonlandırma, bir türün tüketicisi IDisposable.Dispose'yi çağırmadığında, yönetilmeyen kaynakların kesin olmayan bir şekilde serbest bırakılmasına olanak tanır.
Uyarı
Nesne sonlandırma karmaşık ve hataya açık bir işlem olabilir; bu nedenle, kendi sonlandırıcınızı sağlamak yerine güvenli bir tanıtıcı kullanmanızı öneririz.
Sizin türünüzdeki kullanıcılar, yönetimsiz kaynaklar tarafından kullanılan belleği boşaltmak için IDisposable.Dispose uygulamanızı doğrudan çağırabilir. Bir Dispose yöntemini doğru bir şekilde uyguladığınızda, ya güvenli tanıtıcınızın Finalize yöntemi ya da Object.Finalize yöntemini kendi geçersiz kılmanız, Dispose yönteminin çağrılmaması durumunda kaynakları temizlemek için bir koruma görevi görür.
Bu bölümde
Dispose yönteminin uygulanması , yönetilmeyen kaynakları serbest bırakmak için dispose düzeninin nasıl uygulanacağını açıklar.
Uygulayan IDisposablenesneleri kullanma bir türün tüketicilerinin, uygulamasının çağrılmasını nasıl sağladığını Dispose açıklar. Bunu yapmak için C# using (veya Visual Basic Using) deyimini kullanmanızı kesinlikle öneririz.
Kaynak
| Tür / Üye | Açıklama |
|---|---|
| System.IDisposable | Dispose Yönetilmeyen kaynakları serbest bırakma yöntemini tanımlar. |
| Object.Finalize | Dispose yöntemi tarafından yönetilmeyen kaynaklar serbest bırakılmadığında nesne sonlandırması sağlar. |
| GC.SuppressFinalize | Sonlandırmayı bastırır. Bu yöntem, sonlandırıcının çalıştırılmasını önlemek için genellikle bir Dispose yönteminden çağrılır. |