为什么我在对象使用完后将他付为NULL用垃圾回收GC.Collect()回收不了内存,程序一直在增加,实现IDisposable接口时,
private void Dispose(bool disposing)
{
if(!this.disposed)
{
if(disposing)
{
//这里没有资源释放
}
}
disposed = true;
}
内存空间也没有释放出来,有什么好的方法帮我解决呢?
private void Dispose(bool disposing)
{
if(!this.disposed)
{
if(disposing)
{
//这里没有资源释放
}
}
disposed = true;
}
内存空间也没有释放出来,有什么好的方法帮我解决呢?
2:增加垃圾回收的压力。
3:不要用那么复杂的方法Dispose()
直接:
using(SomeThingNeedToBeDisposed)
{
//..使用你的对象
}
4:说明一下:赋NULL并不一定会导致删除对象,更不会立即导致GC动作。
1:手工强制回收
GC.Collect()2:增加内在压力
GC.AddMemoryPressure()具体用法及参数说明参考MSDN。
GC.AddMemoryPressure()试试, "程序上的问题"我的这个对象中包括了其他的对象引用,调用方法时使用了ref ,应该不会有影响吧!
你给这个对象为null。你引用的其他对象就没有处理了。也就是说。其他对象分配的内存就没有办法回收了。结果就成了“死”内存了。你的程序内存肯定回在增加了
建议你先释放掉其他对象的内存后,在释放你这个对象的内存
一定要手动执行dispose方法还是?请教高手.
using
{
}