当您将继承自 MarshalByRefObject 的对象传递给不同的 AppDomain 时,创建它的 AppDomain 诱导的 GC.Collect() 不会收集该对象,前提是该对象在 GC.Collect( ) 叫什么?
[当我说未植根时,我的意思是不再有开发人员编写的代码访问它。]
似乎该对象没有被收集,而是被提升到下一代!
但是,如果我停止将对象传递给 diff AppDomain,它将按预期收集。
这种行为是设计使然吗?如果有道理呢?
多谢你们,
PS 我知道代码中的 GC.Collect() 不好,原因有很多,我只是想了解 GC 将如何在 MBRO 上发生。