相关疑难解决方法(0)

垃圾收集器是否会为我调用IDisposable.Dispose?

.NET IDisposable Pattern 意味着如果您编写终结器并实现IDisposable,则终结器需要显式调用Dispose.这是合乎逻辑的,而且在极少数情况下我总是会做终结器的保证.

但是,如果我这样做会发生什么:

class Foo : IDisposable
{
     public void Dispose(){ CloseSomeHandle(); }
}
Run Code Online (Sandbox Code Playgroud)

并且不要实现终结器或任何东西.框架会为我调用Dispose方法吗?

是的,我意识到这听起来很愚蠢,而且所有的逻辑都暗示它不会,但我总是有两件事让我不确定.

  1. 几年前有人曾告诉我,事实上它会这样做,而且那个人有"非常了解他们的东西"的良好记录.

  2. 编译器/框架根据您实现的接口(例如:foreach,扩展方法,基于属性的序列化等)执行其他"神奇"操作,因此这也可能是"魔术".

虽然我已经阅读了很多关于它的内容,并且有很多暗示的内容,但我从来没有能够找到这个问题的肯定是或否答案.

.net dispose idisposable

126
推荐指数
5
解决办法
3万
查看次数

如何在.net中部署一个类?

.NET垃圾收集器最终将释放内存,但如果你想立即恢复内存呢?你需要在课堂MyClass上使用什么代码来调用

MyClass.Dispose()
Run Code Online (Sandbox Code Playgroud)

并通过变量和对象释放所有已用空间MyClass

.net memory dispose

43
推荐指数
6
解决办法
7万
查看次数

我什么时候应该在.NET中处理我的对象?

对于一般代码,我真的需要处理一个对象吗?我可以在大多数情况下忽略它,或者当你100%确定你不再需要它时总是丢弃一个物体是个好主意吗?

.net garbage-collection dispose

18
推荐指数
3
解决办法
1万
查看次数

识别IDisposable对象

我必须检查一些其他人有一些内存泄漏的代码.现在我正在搜索一次性对象以使用using语句对它们进行包围,我想知道是否有一种快速方式告诉你所有声明的一次性对象.我的意思是像resharper或另一个visual studio插件.

谢谢.

c# dispose memory-leaks idisposable using-statement

13
推荐指数
3
解决办法
3873
查看次数