I have recently started using dotTrack Memory Profiler to help with the removal of some memory leaks from my winforms C# application. Prior to this, I had little knowledge of how to effectively manage resources and memory within C#.
It has been a crash course, but I have had some success. I have fixed the memory leaks from some aspects of my application - printing mainly. This was done mainly by un-registering events that were associated with report printing after the report was printed.
I am now moving onto forms. I'm not having quite as much luck with forms as I had with reports though. I am focusing on the list I can see in the "Incoming References by Objects" associated with the form that refused to un-load. Most of what I can see in here are events, and with a bit of detective work, I have been able to work out where they are registered, and can ensure they are un-registered. By doing this, I have greatly reduced the list in "Incoming References by Objects".
There are some items in the list which, for the life of me, I cant work out where they come from. An example of one can be seen on an msdn posting I put up (http://social.msdn.microsoft.com/Forums/nl/netfxbcl/thread/4f6844e3-1101-4795-9925-2eb93df0c85a).
So, I'm not sure where to go from here. It seems that JetBrains provides a great tool for identifying memory leaks, but doesnt really provide much of a guide of what to do with them, or how to rectify them.
Is there some sort of comprehensive guide I can use to help me sort this out? Is there some support service that can help me track down the problem?
Up until now I have been able to make progress by a combination of brute force and guesswork, but I really cant work out what to do next.