Quote:
Managed resources basically mean anything managed by the CLR (example: any of your managed objects). Unmanaged resources typically mean native resources that are created and lifetime managed outside the CLR (example GDI handles or say sockets).
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 thusly:
using (var connection = new SqlConnection("connection_string_here"))
{
}
As this ensures that .Dispose() is called on the connection object, ensuring that any unmanaged resources are cleaned up.
Refer:
http://msdn.microsoft.com/en-us/library/498928w2(v=vs.110).aspx[
^]
managed and unmanaged resources[
^]