有人知道如何解决使用ChildWindow时SL3中的内存泄漏问题吗?
请参考下面的代码片段:
private void Button_Click(object sender, RoutedEventArgs e)
{
var window = new ChildWindow();
window.Closed += new EventHandler(window_Closed);
window.Show();
}
void window_Closed(object sender, EventArgs e)
{
((ChildWindow)sender).Closed -= new EventHandler(window_Closed);
WeakReference reference = new WeakReference(sender);
GC.Collect();
GC.WaitForPendingFinalizers();
bool isControlAlive = a.IsAlive;
}
每次我打开和关闭子窗口时,它总是显示为仍然“活着”,并且当我在任务管理器中监视iexplore实例时,内存每次都会增加。
请帮忙解决。
谢谢。
Chris
System.Windows.Controls.ChildWindow
类中有一个private bool _attachedRootVisualListener
字段,在订阅RootVisual_GotFocus
事件之前进行检查。 - apdevelop