Я создал приложение форм форм для форм, которое содержит две формы - form1 и form2.Утечка памяти в ShowDialog даже после ее удаления
Форма 1 содержит кнопку и по щелчку Я показываю форму2 как диалоговое окно, как показано ниже.
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;
}
}
}
Затем я проверил приложение, например, нажмите кнопку, затем он откроет форму2, закроет ее. и продолжил это примерно 6 раз.
Когда я проверил приложение с DevPartner, он всегда показывает Form2 form2 = new Form2();
, как утечка
Когда я проверил в сети он говорит, что если мы используем ShowDialog нам нужно расположить форму после того, как мы его закрытия , то есть, почему я попытался избавиться от блока finally. Но все же он показывает эту линию как утечку. Может кто-нибудь, пожалуйста, дайте свои предложения по этой утечке.
Я всегда использую используя блок вокруг моих форм, которые используют диалог шоу, вы пробовали это? – Sayse
Обычно я не придерживаюсь такого стиля, как удаление формы. Почему бы не попробовать помещать этот код Dispose в кнопку, присутствующую в форме2? –
@Sayse: да изначально я попробовал это с помощью .. но не повезло .. –