当WPF控件从父控件中删除时会发生什么
本文关键字:控件 什么 WPF 删除 | 更新日期: 2023-09-27 18:15:31
当调用此函数时,WPF用户控件会发生什么:uiElement.Childen.Remove(foo)
它是否标记为GC要删除或它只是挂在内存中?
如果没有其他引用到foo
,它应该可用于垃圾收集。
您可以尝试添加Finalizer
来检查它:
class MyElement
{
// ...
~MyElement()
{
Console.WriteLine("~MyElement()");
}
}
和
uiElement.Childen.Remove(foo);
GC.WaitForPendingFinalizers();
Console.WriteLine("After GC.WaitForPendingFinalizers()");
然后检查在输出窗口中"After GC.WaitForPendingFinalizers()"
之前是否看到"~MyElement"