C# 当WPF控件从父控件中删除时会发生什么情况?

C# 当WPF控件从父控件中删除时会发生什么情况?,c#,.net,wpf,user-interface,user-controls,C#,.net,Wpf,User Interface,User Controls,调用此函数时,WPF用户控件会发生什么情况:uiElement.Childen.Remove(foo)它是在GC上标记为删除还是挂起在内存中 如果没有对foo的其他引用,它应该可以用于垃圾收集 您可以尝试添加终结器来检查它: class MyElement { // ... ~MyElement() { Console.WriteLine("~MyElement()"); } } 打电话 uiElement.Childen.Remove(foo)

调用此函数时,WPF用户控件会发生什么情况:
uiElement.Childen.Remove(foo)
它是在GC上标记为删除还是挂起在内存中

如果没有对
foo
的其他引用,它应该可以用于垃圾收集

您可以尝试添加
终结器来检查它:

class MyElement
{
    // ...
    ~MyElement()
    {
        Console.WriteLine("~MyElement()");
    }
}
打电话

uiElement.Childen.Remove(foo);
GC.WaitForPendingFinalizers();
Console.WriteLine("After GC.WaitForPendingFinalizers()");

然后检查是否在输出窗口中的GC.WaitForPendingFinalizers()之后的
“~MyElement”
前面看到

谢谢您的提示:)