何时使用Dispose托管资源 看看Applied Microsoft .NET Framework Programming你了解更深入你的看法是正确的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也觉的有必要,GC 是定时性或者被动解发的你可以试试在析构里验证一下你清掉那个class 之后要多久才会执行到析构 建Connection.Open();取.Close();...Dispose()等等....只要有了这个操作过程(以上没问题吧?).我再用代码恢复数据库都是说数据库正在被使用意思是资源没有被释放.但是一关掉程序,资源马上被释放掉.有兴趣可以试试假想一个例子//Connection 完成Command myCmd = new Command();myCmd.CommandText = "...";myCmd.Execute...();myCmd = new Command();myCmd.CommandText = "...";myCmd.Execute...();myCmd.Dispose();// 关闭// Connection Command myCmd = new Command();myCmd.CommandText = "...";myCmd.Execute...();myCmd.CommandText = "...";myCmd.Execute...();myCmd.Dispose();// 关闭前一个是建了两个Command实例,而第一个的Dispose没有被显式调用.估计是由GC完成吧?它的生存期是多长我也不清楚.至少已经没有加在它上面的引用了,这可能也是GC判断是否回收的一个标准吧?第二个只建了一个Command实例,并且使用多次,不再使用的时候,才将它释放掉这是我的理解,我说有点含含糊糊,也请高手指正. 有必要,如果10000人同时连接,而你不释放资源,想想当时会有多少RAM被占用。个人推荐使用:using( SqlConnection conn = new SqlConnection){ conn.open() ;... conn.close() ; // 如果你忘了close, 这个代码结束时,conn也会自动回收了。....} ...Dispose()会自动调用close方法垃圾回收有不确定性,推荐使用dispose 菜鸟问题帮忙解下 关于水晶报表的问题 C#访问pc access app.config读取问题 求读取多个嵌套标签的网页html正则表达式 ------------------C#性能问题?---------------------- c#.net中使用框架webform的问题 新手,求助,请大家帮忙看一下,急用!!! C# 如何多次读取数据包 用c#写了一个windows service, 起动了要20MB内存. 怎么减下来呢?(重分酬谢) 是不是只要装了.net框架,任何系统平台都可以运行在别的平台编译好C#程序? 如何用c#打印一个html文件内容?
.Open();
取
.Close();
...Dispose()
等等....只要有了这个操作过程(以上没问题吧?).我再用代码恢复数据库都是说数据库正在被使用
意思是资源没有被释放.
但是一关掉程序,资源马上被释放掉.有兴趣可以试试假想一个例子
//Connection 完成
Command myCmd = new Command();
myCmd.CommandText = "...";
myCmd.Execute...();
myCmd = new Command();
myCmd.CommandText = "...";
myCmd.Execute...();
myCmd.Dispose();
// 关闭// Connection
Command myCmd = new Command();
myCmd.CommandText = "...";
myCmd.Execute...();
myCmd.CommandText = "...";
myCmd.Execute...();
myCmd.Dispose();
// 关闭前一个是建了两个Command实例,而第一个的Dispose没有被显式调用.估计是由GC完成吧?
它的生存期是多长我也不清楚.至少已经没有加在它上面的引用了,这可能也是GC判断是否回收
的一个标准吧?
第二个只建了一个Command实例,并且使用多次,不再使用的时候,才将它释放掉这是我的理解,我说有点含含糊糊,也请高手指正.
conn.open() ;
...
conn.close() ; // 如果你忘了close, 这个代码结束时,conn也会自动回收了。
....
}