当我在WinForms窗口中打开WPF窗口时出现内存问题。 目前我这样做:
public partial class Form1 : Form
{
MemoryTester.MainWindow wpf_window;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
wpf_window = new MemoryTester.MainWindow())
wpf_window.Closed += Wpf_window_Closed;
wpf_window.Show();
}
}
它正确打开但是当我关闭窗口时,似乎没有释放分配的内存。 Visual Studio诊断工具中分配的进程内存显示,当我打开窗口时,该数字上升了大约20MB但从未达到窗口关闭之前的水平。在没有Visual Studio的情况下启动程序时,在任务管理器中也是如此。
由于Wpf窗口没有Dispose()方法,我尝试捕获已关闭的事件并执行以下操作:
private void Wpf_window_Closed(object sender, EventArgs e)
{
wpf_window.Closed -= Wpf_window_Closed;
wpf_window.Close();
GC.Collect();
}
仍然是相同的行为。 我做错了什么?
答案 0 :(得分:0)
您是否尝试过使用声明?
using(wpf_window = new MemoryTester.MainWindow()){
wpf_window.Closed += Wpf_window_Closed;
wpf_window.Show();}