Detach Your Event Handlers

If you would ask any number of .NET developers with a native programming background about the biggest benefits of the platform, they’ll most likely bring up its automatic memory management capabilities that relieve developers of the burden of manual bookkeeping.

As good as this might sound, there are still some caveats to be aware of. In particular, event handlers tend to be common sources of memory leaks when they’re not maintained correctly. What do I mean by correct maintenance of event handlers?

Consider the following piece of code:

static class SystemEvents {    public static event Action ShuttingDown;}class Handlers {    public void OnShutDown() {        // React to system shutting ...

Get C# 5.0 Unleashed now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.