- Unmanaged code refers to the components which are not a part of the CLR (Common Language Runtime) and which cannot be maintained by the Garbage Collector.
- It is the responsibility of the developer to ensure that the unmanaged code is released once they are no longer required.
- Developers can use structures such as try-finally block to instantiate and release such resources irrespective of the result (success or exception).
- Developers can also wrap such components inside a using block and add the code to release resources inside the Dispose method which is called immediately after the using block execution is complete.
- Finally, they can also use Object.Finalize to place the code to release resources when the object is memory is being released.
![](https://i0.wp.com/referbruv.com/wp-content/uploads/2022/05/banner-image-questions-new.png?fit=1200%2C600&ssl=1)
How to handle unmanaged code memory?
Unmanaged code refers to the components which are not a part of the CLR and which cannot be maintained by the Garbage Collector.