讨论模式的指南/注释/文章都没有IDisposable
建议应该null
在Dispose(bool)
方法中设置内部成员(特别是如果它们是占用内存的野兽)。
在调试内部基准测试工具时,我开始意识到它的重要性。过去发生的事情是,这个缓冲区里面包含一个大数组。我们曾经为整个基准测试程序使用静态缓冲区。一旦我们完成了缓冲区,我们就无法释放这个内部数组,我们也不能让这个缓冲区可释放(因为它是静态的)。
所以,我相信,在Dispose()
被调用之后,该类应该尽其所能释放它正在使用的所有资源并使它们再次可用,即使被处理的对象本身没有被 GC 回收,也没有设置成员为 null,因此,不允许 GC 收集内部对象意味着 Dispose 实现并不完美。
您对此有何看法?