当前位置:  开发笔记 > 编程语言 > 正文

如何跟踪我从哪里泄漏IDisposable对象?

如何解决《如何跟踪我从哪里泄漏IDisposable对象?》经验,为你挑选了1个好方法。

我最近调试了一些有点内存泄漏的代码.这是一个长期运行的程序,作为Windows服务运行.

如果你发现一个戴着IDisposable界面的类,它告诉你它使用的一些资源超出了垃圾收集器为你清理的能力.

它告诉你的原因是你,这个对象的用户现在负责清理这些资源的时间.恭喜!

作为一名尽职尽责的开发人员,.Dispose()当您完成对象以释放这些非托管资源时,您会轻松调用该方法.

完成后,有一个很好的using()模式可以帮助清理这些资源.只是发现哪些确切的物体导致泄漏?

为了帮助追踪这些流氓非托管资源,有什么方法可以查询在任何给定时间点等待处置的对象是什么?



1> Ishmaeel..:

不应该有任何你不想调用Dispose的情况,但是编译器无法告诉你应该在哪里调用dispose.

假设您编写了一个工厂类,它创建并返回一次性对象.如果清理应该是您的呼叫者的责任,编译器是否应该因为没有调用Dispose而导致错误?

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有