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

  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • TechXCentral

    TechXCentral

    12 Temmuz 2011
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006