我创建了一个示例 Windows 窗体应用程序,其中包含两个窗体 - form1 和 form2。
Form1 包含一个按钮,单击时我将 form2 显示为一个对话框,如下所示。
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
try
{
form2.ShowDialog();
}
catch (Exception ex)
{
}
finally
{
if (form2 != null)
{
form2.Dispose();
form2 = null;
}
}
}
然后我检查了应用程序,例如单击按钮,然后它将打开 form2,关闭它。并持续了大约 6 次。
当我使用DevPartner检查应用程序时,它总是显示Form2 form2 = new Form2();
为泄漏
当我在网上检查时,它说如果我们使用 ShowDialog,我们需要在关闭它后处理表单,即为什么我尝试在 finally 块中处理。但它仍然显示该行泄漏。任何人都可以就这次泄漏提出您的建议。