title: Why and How to avoid Event Handler memory leaks?
body: <p>I just came to realize, by reading some questions and answers on StackOverflow, that adding event handlers using <code>+=</code> in C# (or i guess, other .net languages) can cause common memory leaks...</p>
  
  <p>I have used event handlers like this in the past many times, and never realized that they can cause, or have caused, memory leaks in my applications.</p>
  
  <p>How does this work (meaning, why does this actually cause a memory leak) ?<br/>
  How can I fix this problem ? Is using <code>-=</code> to the same event handler enough ?<br/>
  Are there common design patterns or best practices for handling situations like this ?<br/>
  Example : How am I supposed to handle an application that has many different threads, using many different event handlers to raise several events on the UI ?</p>
  
  <p>Are there any good and simple ways to monitor this efficiently in an already built big application?</p>