c# - 这个应用程序树会被垃圾收集吗?

标签 c# garbage-collection clr

在我的应用程序组合根中,构建了一个大型实例树,其中子节点可以通过实例委托(delegate)和观察者隐式引用父节点。这是托管对象关系的简化 View :

A    <---+
  B    | |
  C  - + |
  D      |
E        | <-+
  F  ----+   |
  G          |
    I -------+  

我的预感是,如果我在组合根中引用了对象 A 和 E,然后将它们设置为 null,则完整的对象树将被垃圾收集。

正确吗?

最佳答案

这是正确的,因为您没有任何其他对树中节点的可访问引用。这是因为,如果没有对其中任何一个的外部(即可到达)引用,则相互引用的不可到达对象仍然符合垃圾回收的条件。

关于c# - 这个应用程序树会被垃圾收集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8253697/

相关文章:

ios - 垃圾收集器期间的 MonoTouch SIGSEGV 在 ABPeoplePickerNavigationController 上启动 Dispose

asp.net - 从 SQL 2005 Server 访问 TimeZoneInfo

Java 相当于 CLR 的 UnhandledException 事件

c# - 如何在序列化之前检查类文件是否已更改?

c# - 不挂其他控件的WinForms验证

java - System.gc()什么时候做某事?

.net - 从 .NET 中的构造函数中抛出异常

.net - 如何使用 WinDbg 在实例上查找自定义属性

c# - 无需授权或用户登录即可保护 webapi 2

c# - 富文本框内的链接?