我有一个类,它包含一个指向继承自 IDisposable 的对象的指针
class Foo
{
private Bar bar;
private test()
{
bar = CreateBarFactory();
}
};
bar 永远不会在 test() 中设置后使用;
我想知道即使 Foo 实例仍然存在,是否允许 GC 处理 bar?
如果是这样,我有办法避免这种情况吗? bar 是指向包含 ref 计数的对象的指针,如果它是 Disposed() 则释放 ref 导致某些功能被禁用
最佳答案
如果 foo 的实例仍然存在(即有人持有对它的引用......使其保持事件状态),则不会收集 bar。它将被 GC 视为“可达”,即正在使用中。
可达对象的成员也被认为是可达的。
关于c# - .NET 垃圾收集器能否收集作为类成员的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667090/