Finalize() -此函数仅在垃圾收集过程中
清理非托管资源
-用户不知道此方法何时实际执行。
用户也不能直接调用这个函数来清理内存。
Dispose() -
通过实现 IDisposable 接口,用户可以清理非托管资源,用户将确切知道何时释放资源。
我的理解是 Finalize() 不能被覆盖以清理非托管资源。
这是一个仅用于“GC”进程的系统进程,用于清理非托管资源。
如果用户需要自己清理资源,那么他/她应该实现 IDisposable 接口并显式调用 Dispose()。没有其他可能!
清理非托管资源的最佳做法是使用“USING”语句。
问题1: 我的理解正确吗?如果我错了,请在我的上述陈述中纠正我。
问题 2:另外,我想知道,我可以通过实现 IDisposable 接口和调用 Dispose() 来 清理托管资源吗?