SORU
5 AĞUSTOS 2008, Salı


Null ayarı Nesneleri kullanmak sonra da Yok .NET

Onlarla bittiğinde null (VB.NETNothing) tüm nesneleri olur.

Bunu anlıyorum .NET gebe ve imha örneklerini nesneleri uygulamak IDisposable arayüzü açıklaması, bazı kaynaklar, ancak nesnesi olabilirler bir şey sonra imha (dolayısıyla isDisposed özellik form), bu yüzden sanırım hala ikamet hafıza ya da en azından bir kısmını?

Ben de bir nesne kapsam dışına çıktığında o zaman toplama çöp toplayıcı bir sonraki geçişi bu zaman alabilir olsa da) hazır olarak işaretlenmiş.

Yani bu sorun edeceğini ayarı null hızlı sistem serbest hafıza olarak değil, var olduğunu artık kapsam ve onlar herhangi bir kötü yan etkisi var mı?

Makaleler hiç örneklerde bu MSDN ve şu anda ben yapamam bunu yapmak zarar görüyor. Ancak herhangi bir yorumunuz yararlıdır yani görüşlerin bir karışımı ile karşılaştım.

CEVAP
5 AĞUSTOS 2008, Salı


Karl kesinlikle doğru, kullanın, sonra boş nesneleri ayarlamak için gerek yoktur. Eğer bir nesne uygular IDisposable, emin ol çağrısı IDisposable.Dispose() işin bitince o nesne (sarılı bir try..finally veya using() blok). Ama eğer Dispose(), nesne üzerinde finaliser yöntemini çağırmak için hatırlamıyorsun bile senin için Dispose() aramış olmalı.

Bu iyi bir tedavi olduğunu düşündüm:

Digging into IDisposable

ve bu

Understanding IDisposable

Kendini ayarlama ve opak çünkü ikinci GC ve yönetim stratejilerini tahmin etmeye çalışırken hiç anlamı yok. Dot Net Kaya Jeffrey Richter ile iç işleyişini hakkında iyi bir tartışma vardı: Jeffrey Richter on the Windows Memory Model CLR via C# Richters kitabı bölüm 20 büyük bir tedavi vardır:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • UnboxTechnology

    UnboxTechnol

    20 Ocak 2011