
.net中超过80%的资源都是托管资源。
非托管资源:
ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,
Cursor,FileStream,Font,Icon,Image,Matrix,Object,OdbcDataReader,OleDBDataReader,
Pen,Regex,Socket,StreamWriter,Timer,Tooltip ,文件句柄,GDI资源,数据库连接等等资源。可能在使用的时候很多都没有注意到!
.NET的GC机制有这样两个问题:
首先,GC并不是能释放所有的资源。它不能自动释放非托管资源。
第二,GC并不是实时性的,这将会造成系统性能上的瓶颈和不确定性。
GC并不是实时性的,这会造成系统性能上的瓶颈和不确定性。所以有了IDisposable接口,IDisposable接口定义了Dispose方法,这个方法用来供程序员显式调用以释放非托管资源。使用using 语句可以简化资源管理。
示例
?
- /// <summary> /// 执行SQL语句,返回影响的记录数
- /// </summary> /// <param name="SQLString">SQL语句</param>
- /// <returns>影响的记录数</returns> public static int ExecuteSql(string SQLString)
- { using (SqlConnection connection = new SqlConnection(connectionString))
- { using (SqlCommand cmd = new SqlCommand(SQLString, connection))
- { try
- { connection.Open();
- int rows = cmd.ExecuteNonQuery(); return rows;
- } catch (System.Data.SqlClient.SqlException e)










