TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Kevin Coulombe
NA
2
0
Anonymous event handlers and garbage collection
Sep 25 2008 5:01 PM
I tried to formulate the situation as clearly as I could, but that's still a lot of technical terms to assimilate in very few sentences. Sorry about that, I'll clarify if you have any questions.
Some background.
When you add to the FormClosing event of a Form, an event handler representing a method from your custom control, the FormClosing event keeps a reference to the custom control. This means that even if you dispose of the custom control and delete all references to it, it will not be garbage collected unless you remove the event handler from the FormClosing event (and, unfortunately there are no Clear method on events).
My situation.
I have a context menu containing menu items that the user can check to add some items to selections. The list of selections is dynamic and can be changed at will, so the menu items are dynamically generated and added to the context menu. Then I bind an anonymous event handler to the CheckStateChanged that uses the Id variable from the selection's DataRow. Internally, the compiler will create a temporary anonymous class to hold the variables from the event handler's declaration scope so I may use the DataRow's members. The anonymous event handler will become an anonymous method inside the generated anonymous class and when I dispose of my menu items to refresh the list of selections, they will be garbage collected correctly.
The question.
Am I right or did I miss something that might lead to a memory leak in my desing?
Reply
Answers (
0
)
Http basic authentication issue
transfer text from form 2 to form1 on a button click