【问题标题】:.NET GC Clarification Needed for non .net classes in a .net project.NET 项目中的非 .NET 类需要 .NET GC 说明
【发布时间】:2010-08-27 09:52:13
【问题描述】:

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

那么,.NET 如何处理释放非 .NET 的对象?还是不行?

谢谢。

【问题讨论】:

    标签: .net memory memory-management garbage-collection delphi.net


    【解决方案1】:

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

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

    【讨论】:

    • 好的,这就是我在找到问题原因后的想法。谢谢。
    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多