Nea*_*eal 8 .net c# memory-leaks memory-management
由于C#使用垃圾收集.什么时候需要使用.Dispose释放内存?
我意识到有一些情况所以我会尝试列出我能想到的.
Ree*_*sey 10
从理论上讲,如果你已经正确定义的组件部分,它不应该需要调用Dispose()在你的对象,终结应该最终会照顾它.
话虽这么说,每当你使用一个实现IDisposable的对象时,一旦你使用它就调用Dispose()是一个好习惯.
对于您的一些具体要点:
1)如果您知道表单已"完成",则可以在其上调用Dispose().这将强制在与表单关联的非托管资源的那个时间点进行清理.
2)在这种情况下:如果您的对象只是在该方法中使用,请使用"using"代替:
using (MyObject myObject = new MyObject())
{
// use your object
} // It'll be disposed of here for you
Run Code Online (Sandbox Code Playgroud)
3)有很少的理由这样做,但总的来说,没有.
4)事件是委托 - 在委托本身变为无根之后将收集与委托相关联的存储器,这通常在有问题的对象未经根据时发生.
| 归档时间: |
|
| 查看次数: |
7254 次 |
| 最近记录: |