相关疑难解决方法(0)

我如何说服我的同事不要在所有事情上实施IDisposable?

我正在开发一个项目,其中有大量的对象由一些类实例化,这些类在应用程序的生命周期内保留在内存中.每次不时抛出OutOfMemoryExceptions都会导致大量内存泄漏.似乎在实例化的对象之前超出范围之后,它们不会被垃圾收集.

我已经将问题分离为主要关于附加到永远不会分离的长生命对象的事件处理程序,从而导致长生命对象仍然具有对超出范围对象的引用,然后永远不会垃圾收集.

我的同事提出的解决方案如下:在所有类,全面和Dispose方法中实现IDisposable,使对象中的所有引用为null,并从您附加到的所有事件中分离.

我相信这是一个非常糟糕的主意.首先是因为它"过度杀戮",因为问题可以通过修复一些问题区域来解决,其次因为IDisposable的目的是释放对象控制的任何非托管资源,而不是因为你不信任垃圾收集器.到目前为止,我的论点都被置若罔闻.我怎么能说服他们这是徒劳的?

.net c# memory-management idisposable

18
推荐指数
4
解决办法
3532
查看次数

标签 统计

.net ×1

c# ×1

idisposable ×1

memory-management ×1