相关疑难解决方法(0)

你需要处理对象并将它们设置为null吗?

您是否需要处理对象并将它们设置为null,或者当垃圾收集器超出范围时它们是否会将它们清理干净?

.net c# garbage-collection dispose

300
推荐指数
9
解决办法
27万
查看次数

在Dispose(bool)方法实现中,是否应该将成员设置为null?

讨论IDisposable模式的指南/注释/文章都没有提出应该nullDispose(bool)方法中设置内部成员(特别是如果它们是内存占用的野兽).

在调试内部基准测试工具时,我逐渐意识到它的重要性.过去常见的是,这个缓冲区内部包含一个大数组.我们过去常常为整个基准程序使用静态缓冲区.一旦我们完成缓冲区,我们就无法释放这个内部数组,也不能让这个缓冲区可释放(因为它是静态的).

所以,我相信,在Dispose()调用之后,类应该尽其所能,以便它释放它正在使用的所有资源并使它们再次可用,即使被处理的对象本身没有被GC收回,也没有设置因此,成员为null,不允许GC收集内部对象意味着Dispose实现并不完美.

你对此有何看法?

.net c# garbage-collection dispose memory-management

4
推荐指数
1
解决办法
1524
查看次数