日期:2014-05-18  浏览次数:20430 次

关于项目开发中内存释放及回收的问题
我在做网站项目的时候在页面中很多地方都  
private   ***
protected   ***  


因为有的页面用到好多变量     请问怎么一起释放这些变量或者回收这些变量资源呢

------解决方案--------------------
会自动回收,不用操心这个。
------解决方案--------------------
在对象销毁的时候自动会销毁这些变量,回收内存的。

而且这些资源回收,NET会自动执行,建议不要手动执行。

强迫NET执行资源回收:GC.Collect();
------解决方案--------------------
要是没有很多 private protected 就真的奇怪了 ....
------解决方案--------------------
.NET 中什么是【托管代码(managed code】 ?

简单的说,就是有 .net CLR 运行时,自动管理内存分配、回收,

不象 c/c++,manged code,如 C#/VB.net 你只有 new 的机会,没有 delete 的机会,

CLR 会在适当的时候,进行无用资源的回收,

注意这里的【适当的时候】,这是需要一个合理设计、高效算法,以及充分优化的策略。

虽然你可以使用诸如,GC.Collect() 的方式,进行对指定资源进行强制回收,但是不常用,
相反的是,假如你不熟悉 内部实现机制,比如对象代的(Generation)概念、弱引用之类,效果可能是非预期的!

通常,涉及非托管资源的使用,我们才希望显示的控制资源回收,但是 .net 为我们提供其他的更有效机制,比如 IDisposable ....

详细参考:

IDisposable 接口
定义一种释放分配的非托管资源的方法。
http://msdn2.microsoft.com/zh-cn/library/system.idisposable.aspx