У меня есть приложение Windows Form. Когда я динамически добавляю некоторые кнопки в форму, а затем удаляю эти кнопки, возникает утечка памяти.
public partial class Form1 : Form
{
private Button[] buttons = new Button[1000];
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
var b = new Button();
Controls.Add(b);
buttons[i] = b;
}
for (int i = 0; i < 1000; i++)
{
Controls.Remove(buttons[i]);
buttons[i].Dispose();
buttons[i] = null;
}
}
}
Использование памяти:
- После загрузки формы: 3720 КБ
- После нажатия кнопки1: 5144 КБ
(Эти цифры записаны после полной сборки мусора. Программа запускалась без отладчика, релизная сборка.)
Что еще более странно, независимо от того, сколько раз выполняется button1_Click, использование памяти остается на уровне около 5100 КБ. Что я делаю неправильно?