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

  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • kimberly p

    kimberly p

    23 Ocak 2010
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008