SORU
24 Aralık 2010, Cuma


Neden ve Nasıl Olay İşleyicisi bellek sızıntıları önlemek için?

Ben sadece, olay işleyicileri C = kullanarak ekleme bu StackOverflow bazı sorular ve cevapları okuyarak fark geldi# (veya sanırım, diğer .dil net) ortak bellek sızıntıları neden olabilir...

Geçmişte birçok kez bu gibi olay işleyicileri kullandım, ve, veya neden olmuş, benim uygulamalarda bellek sızıntıları neden olduğunu hiç fark etmemiştim.

Bu nasıl (neden bu aslında bir neden yok anlam bellek sızıntısı) ?-= kullanma yeterli ?

İyi ve basit herhangi bir şekilde bu verimli çoktan inşa edilmiş büyük bir uygulama izlemek için vardır ?

Şimdiden teşekkürler!

CEVAP
24 Aralık 2010, Cuma


Bir olay işleyicisi, abone iken . nedenini açıklamak basit: ^em>Yayıneviolay tutan bir başvuruaboneolayın üzerinden işleyicisi temsilci (temsilci örnek bir yöntem olduğunu varsayarsak).

Eğer yayımcı daha abone daha yaşarsa, o zaman abone için diğer kaynaklar yok bile abone hayatta tutacak.

Eğer eşit bir işleyicisi ile olay aboneliğini iptal etme, o zaman evet, işleyicisi ve olası sızıntı kaldıracaktır. Ancak, benim durumumda, bu genellikle yayımcı ve abone zaten kabaca eşit ömürleri bulduğumuz için gerçekten bir sorundur nadiren.

olası bir neden... ama deneyimlerime göre aşırı sinirli değil. Sizin kilometre, elbette değişebilir... sadece dikkatli olmak gerekir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • thelonelyisland

    thelonelyisl

    23 Aralık 2005
  • ThePointblank

    ThePointblan

    18 Aralık 2006