0

我在应用程序中解决了一些内存问题,并最终设法实现了它的底部。最近我有一个例子,在处理任务时,我的进程内存达到了800MB。现在我已经设法达到140mb,这是完全可以接受的。然而,这让我质疑了我对.NET垃圾收集器的理解。我的内存问题是通过在每次使用后释放2个非.NET对象(TADOCommand和TDataSet - 在delphi中)来解决的。这些变量的范围是程序本地的,所以我推测它们应该被自动清理,因为没有任何东西应该引用它们。.NET GC澄清需要在.net项目中使用非.NET类

那么,.NET如何处理不是.NET的对象呢?或者不是吗?

谢谢。

回答

3

它没有。 .NET垃圾收集器只处理托管对象。其他一切都必须由其他东西清理。

如果所述资源被托管类型封装,则可以使用IDisposable来实现清理。

+0

好的,这是我找到原因后,我认为我的问题。 谢谢。 – webnoob 2010-08-27 10:14:10