這是一個使用Lambda作爲EventHandler的有效方法嗎?在我看來,處理程序已被正確刪除,並且垃圾收集器應該清理它。但是,我還沒有看到其他人這樣做,所以我想我最好仔細檢查一下。這會收集垃圾嗎?
沿着相同的路線,什麼是最好的工具(最好是免費的)來測試這是否實際上是垃圾收集?
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(10);
EventHandler callback = null;
callback = (s, e) =>
{
timer.Stop();
timer.Tick -= callback;
};
timer.Tick += callback;
timer.Start();
對於任何有興趣的人,我確實創建了一個運行上述代碼1M的測試。內存使用始終保持在整個。 – herbrandson 2011-02-28 18:00:25