[c#] 為什麼以及如何避免事件處理程序內存洩漏?


Answers

是的, -=足夠了,但是,跟踪每個分配的事件可能相當困難。 (詳情請看Jon的帖子)。 關於設計模式,看看弱勢事件模式

Question

我剛剛通過閱讀上的一些問題和答案意識到,在C#中使用+=添加事件處理程序(或者我猜,其他.net語言)會導致常見的內存洩漏......

過去我多次使用過這樣的事件處理程序,並且從未意識到它們可能導致或導致應用程序中的內存洩漏。

這是如何工作的(意思是,為什麼這會導致內存洩漏)?
我該如何解決這個問題? 正在使用-=相同的事件處理程序嗎?
有處理這種情況的常見設計模式或最佳實踐嗎?
示例:我應該如何處理具有多個不同線程的應用程序,使用許多不同的事件處理程序在UI上引發多個事件?

有沒有什麼好的和簡單的方法可以在已經構建的大型應用程序中有效地監控這些?




Links