SORU
6 Mart 2009, Cuma


Bellek Sızıntısı C#

Hiç mümkün yönetilen bir sistemde tüm işler emin olun, bellek sızıntısı için IDispose aktiften uygulayan şeyler mi?

Bazı değişkenler dışında bırakılmış durumlar var mı?

CEVAP
7 Mart 2009, CUMARTESİ


Olay İşleyicileri açık olmayan bir bellek sızıntısı çok yaygın bir kaynağıdır. Object2, object1 object2 sonra gelen bir olay için abone olun.Öyle bir yer yok (ve kodunuzu tüm başvuruları terk) numarası() atılması ve çöp toplama olmaktan object2 önleyecek object1 olay örtülü bir başvuru yok.

MyType object2 = new MyType();

// ...
object1.SomeEvent  = object2.myEventHandler;
// ...

// Should call this
// object1.SomeEvent -= object2.myEventHandler;

object2.Dispose();

Bu bir sızıntı - kolay olayları çıkmak unutmak sık görülen bir durumdur. Tabii ki, eğer object1 object2 toplamıştır alacak, ama o kadar değil toplanan alır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006
  • SegaAmerica

    SegaAmerica

    5 Mart 2008