-
2 votesanswersviews
调用Dispose方法将清除并压缩.Net中的内存?
我知道.Net中的Dispose和Finalize方法如下 . 如果我错了,请纠正我 . Dispose:实现IDisposable接口并在Dispose方法中删除未使用/未管理的代码 . 开发人员需要手动调用它,如果他们想要立即删除,或者GC将在调用时处置资源 . Finalize:当GC调用时,它将释放未使用的托管代码,如果实现了IDisposable,它将调用Dispose方法释放非托管资源... -
64 votesanswersviews
“Dispose”只应用于包含非托管资源的类型吗?
我最近与一位同事讨论了 Dispose 的 Value 以及实施 IDisposable 的类型 . 我认为实施 IDisposable 对于应该尽快清理的类型是有 Value 的, even if there are no unmanaged resources to clean up . 我的同事有不同的想法;实施 IDisposable 如果你没有必要,因为你的类型最终将被垃圾收集 . 我... -
0 votesanswersviews
如果调用Dispose方法,GC如何管理默认情况下实现IDisposable的任何类/对象(如streamwriter)? [关闭]
我已经阅读了一些关于GC,终结器,托管和非托管对象,一次性模式@StackOverflow的内容 . 目前,我对GC,Finalizers,Disposable模式和托管,非托管资源术语的正确用法感到困惑 . 恕我直言,关于上述主题有很多误导性的答案 . 例如; 我以this帖子为例 这个问题的接受答案意味着如果我们不调用默认情况下实现IDisposable接口的.net对象的dispose方法,... -
344 votesanswersviews
在C#中完成/处理模式
C#2008 我一直在研究这个问题,我仍然对一些问题感到困惑 . 我的问题如下 我知道如果你处理非托管资源,你只需要一个终结器 . 但是,如果您使用托管资源来调用非托管资源,您是否仍需要实现终结器? 但是,如果您开发一个不直接或间接使用任何非托管资源的类,您是否可以实现 IDisposable ,以便您的类的客户端可以使用'using statement'? 是否可以接受实现IDisp...