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
amit_gupta14
NA
119
0
Destructor vs finalize vs dispose
Aug 6 2009 5:40 AM
Please respond for the following scenarios:
1. Destructor internally calls finalize(). We donot explicitly mention finalize() in the code. Am I right?
2. Destructor is handled by CLR. Does CLR also handles dispose?
3. Give examples of managed, unmanaged resources. I have seen the statement that GC(part of CLR) handles unmanaged resources.
Does it mean GC only handles unamanged resources, why not managed?
If yes, then who handles managed resources?
4. If dispose can be called at our own, then why do we need destructor? Any case where we should use dispose or destructor?
5. Destructor impacts performances. Dispose also?
6. If we have mentioned both destructor as well as dispose for same object and written same code, which is executed 1st?
Moreover, will both be executed one after another? If yes, how to stop it?
7.Keep in mind you should call GC.SuppressFinalize(this); in your dispose method to tell the GC that the object was manually disposed and shouldn't be finalized. I have read this statement. Is it applicable only when we use destructor and dispose both or always required irrespecive of use of destrcutor?
8.Since .NET has a garbage collector why do we need finalizers/destructors/dispose-pattern?
If I understand correctly the .net runtime will always clean up after me. So if I create new objects and I stop referencing them in my code, the runtime will clean up those objects and free the memory they occupied.
Since this is the case why then do some objects need to have a destructor or dispose method? Won't the runtime clean up after them when they are not referenced anymore?
9. Finalize() is called implicitly when Destructor is used, is it true?
Suppose we donot use destructor, still finalize() will be called by GC?
10. Finalize only handles managed resources, dispose handles only unmanaged, right?
Reply
Answers (
0
)
C# SOCKS5 Proxy
get the column data of datalist