Introduction:
Here I will explain
difference between dispose and finalize methods in C#, VB.Net with example
OR
dispose() vs finalize() methods in ASP.Net
OR
use of dispose and finalize methods in ASP.Net using C# with example.
OR
dispose() vs finalize() methods in ASP.Net
OR
use of dispose and finalize methods in ASP.Net using C# with example.
Generally we will use dispose and finalize methods to destroy unmanaged objects.
Description:
In previous posts I explained many articles about various concepts.
Now I will explain difference between dispose and finalize methods in C# with example.
Dispose() Method
- This dispose method will be used to free unmanaged resources like files, database connection etc.
- To clear unmanaged resources we need to write code manually to raise dispose() method.
- This Dispose() method belongs to IDisposable interface.
- If we need to implement this method for any custom classes we need to inherit the class from IDisposable interface.
- It will not show any effect on performance of website and we can use this method whenever we want to free objects immediately.
Example
//Implement Dispose Method. public class TestDispose : IDisposable { private bool disposed = false; //Implement IDisposable. public void Dispose() { Dispose(true); } protected virtual void Dispose(bool disposing) { if (!disposed) { if (disposing) { // clean unmanged objects } // clean unmanaged objects). disposed = true; } } } |
Finalize() Method
- This method also free unmanaged resources like database connections, files etc…
- It is automatically raised by garbage collection mechanism whenever the object goes out of scope.
- This method belongs to object class.
- We need to implement this method whenever we have unmanaged resources in our code and make sure these resources will be freed when garbage collection process done.
- It will show effect on performance of website and it will not suitable to free objects immediately.
Example
// Implementing Finalize method public class Sample { //At runtime destructor automatically Converted to Finalize method. ~Sample() { // your clean up code } } |
No comments:
Post a Comment