2010-08-27 114 views
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