Dün bir projemle ilgili şikayet aldım.
Bir form var. İçinde bir timer var. Süre bitince mesaj veriyor filan.
Bu formdan üretmişim, ekrana almışım, işim bitmiş ve hafızadan silmişim (dispose etmişim).
Sonra alakasız bir ekranda süre bitti diye mesaj geliyor.
Tam bir memory leak durumu.
Ama ben .Net 4.5 kullanıyorum.
Garbage Collection neden işe yaramamış?
GC yalan mıdır?
DotNet içinde memory leak olur mu?
Nesneyi dispose etmişim.
GC.Collect demişim. Daha ne demeliyim?
Araştırınca gördüm ki arada bir bu durum olabiliyormuş.
Özellikle WPF ve Silverlight uygulamalarda dikkatli olmak gerekliymiş.
WPF ve Silverlight birtakım şeyleri doğru kodlayacağınızı varsayıyor.
Bu şeylerin tam listesini öğrenince ayrıca paylaşmak isterim bir ara.
Bilen varsa paylaşmasını da isterim elbette.
Peki ben bu doğru yöntem denen şeyleri bilmiyorum ve de memory leak yaşamışım.
Bu memory leak neden hangi koddan, hangi noktadan kaynaklanmış nasıl bulacağım?
Cevabı aşağıdaki makalede:
Herkese saygılar.