代码之家  ›  专栏  ›  技术社区  ›  Jon Artus

VBA垃圾收集器详细信息

  •  17
  • Jon Artus  · 技术社区  · 14 年前

    我发现自己最近不得不写一些VBA代码,只是想知道是否有人遇到过关于VBA垃圾收集器如何工作的任何细节?.Net GC确实有很好的文档记录,但是我在VBA GC上找不到任何细节,除了含糊地提到它是一个引用计数器。我假设它与vb6gc非常相似,但也找不到任何相关信息。

    具体来说,我想知道:

    • 它使用什么算法(例如,集合是分代的?)
    • 它如何(如果有的话)处理循环引用?

    这更多的是出于好奇,而不是任何特别需要知道的,任何洞察都非常感激!

    1 回复  |  直到 14 年前
        1
  •  15
  •   Konrad Rudolph    14 年前

    下面假设VBA是 仍然

    VB6使用了引用计数GC。当对给定对象的最后一个引用设置为 Nothing . 将本地引用设置为 没有什么 是不必要的,当它们超出范围时就会发生这种情况。

    因此,循环引用中的对象在VBA应用程序的生存期内永远不会被收集。此外,VBA不提供中断循环引用的方法。在VB6中,弱引用可以通过WinAPI函数实现。