Bir uygulama süresi boyunca var olan bir nesnem var mı? Buna GlobalWorker diyelim. GlobalWorker'ın etkinlikleri vardır, ör. Başka nesnelerin abone olabileceği UserLoggedIn. Şimdi bir Silverlight sayfası veya oluşturulduğunda UserLoggedIn olayına abone olan bir asp.net sayfası veya bir şey olduğunu düşünün.Olay işleyicileri ve uygulama ömür boyu nesneleri C# - ben çıkarmamalı mıyım?
public SomePage()
{
GlobalWorker.Instance.UserLoggedIn += new EventHandler(OnUserLoggedIn);
}
private void OnLoggedIn(object sender, EventArgs e)
{
}
Bu olayın varlığı sayfanın çöp toplanmasını engelliyor mu? Öyleyse, bu örnekte kullanılacak en iyi şablon nedir: zayıf etkinlik işleyicileri, aboneliği Yükleme olayına taşıma ve UnLoad olayında abonelikten çıkma?
Windows Forms'ta da yaygın bir sorun. –
Heck, bu bir problem bile JavaScript! – Gabe
'Zayıf olay' deseni, daha genel olduğundan (ve daha az [yedek] kod gerektirdiğinden) dinleyici sınıfındaki (ler) olay işleyicisinin kaydını tutmak için tercih edilir mi? –