Thursday, 12 May 2016

Managed and Unmanaged resources, idisposable

The term "Managed resource" is usually used to describe something directly under the control of the garbage controller. 
The term "unmanaged resource" is usually used to describe something not directly under the control of the garbage collector. For example, if you open a connection to a database server this will use resources on the server (for maintaining the connection) and possibly other non-.net resources on the client machine, if the provider isn't written entirely in managed code.
This is why, for something like a database connection, it's recommended you write your code with "using":
using (var connection = new SqlConnection("connection_string_here"))
{
    // Code to use connection here
}
As this ensures that .Dispose()is called on the connection object, ensuring that any unmanaged resources are cleaned up.

No comments:

Post a Comment