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

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013