У меня есть много пользовательских элементов управления, в которых я добавляю только один из них на панель, но сначала очищаю панель от предыдущего.
Я создаю новый экземпляр пользовательского элемента управления, когда хочу добавить его на панель, и Dispose()
других пользовательских элементов управления и задаю для всех ссылок значение null, чтобы сборщик мусора мог их удалить.
Например:
// Declare the variables globally
ViewBasicInformation control1 = null;
AddBasicInformation control2 = null;
// Code inside Button
Panel.Controls.Clear();
control1.Dispose();
control1 = null;
control2 = new AddBasicInformation();
Panel.Controls.Add(control2);
Однако, как увеличивается использование памяти, как мне освободить эту память?
И для получения дополнительной информации ... Каждый пользовательский элемент управления использует класс, который устанавливает соединение со смарт-картой и выполняет некоторые команды для чтения и записи на карту.
У меня также есть фоновый работник, который определяет, когда карта вставлена или извлечена.