我对于在.Net中Dispose和Finalize方法有一个想法,如下所述。这个理解正确吗?
Dispose:实现IDisposable接口并在Dispose()
方法中移除未使用/未托管的代码。如果开发者需要立即删除资源,他们需要手动调用它,否则当GC被调用时会自动清理资源。
Finalize:当GC被调用时,它将释放未使用的托管代码,并且如果实现了IDisposable,则会调用Dispose()
方法以释放未管理的资源(通常情况下)。
基本上,当我们使用Dispose()
方法释放资源时,内存会立即被释放和压缩(就像GC一样)吗?
Dispose
会导致问题(我不幸的是以一种艰难的方式学到了这一点)。 - Sergey Kalinichenko