У меня есть форма, которая может быть динамически добавлена в элемент управления вкладки devexpress. Когда вы щелкаете вкладку в первый раз, элемент управления есть. Вы можете добавить дополнительные, как вам удобно. На каждом из них есть кнопка удаления. Однако, если вы нажмете кнопку «Добавить», она добавит около 30 МБ в текущий процесс. Когда вы удаляете один из них, MB остаются в памяти.Использование памяти с приложением winform
Мой код удаления:
MyCustom temp = this._UIList[idx] as MyCustom;
if (this._UIList.Count == 1)
{
temp.Clear();
}
else
{
if (temp != null)
{
this._UIList.RemoveAt(idx);
this._UIList.TrimToSize();
this.pnlInner.Controls.Remove(temp);
temp.CleanUP();
temp.Dispose();
//now reshuffle all the note controls
ReshuffleMyCustomControls();
}
}
Любое направление было бы очень полезно. Благодарю.
что 'MyCustom'? что делает 'ReshuffleMyCustomControls'? –
Вы должны _Temporarily_ добавить GC.Collect(); звоните, чтобы убедиться, что память еще не была собрана мусором ... – Osiris
MyCustom - это пользовательский элемент управления, который добавляется в форму при нажатии кнопки добавления. Reshuffle устанавливает idx того, который не удаляется в 0, и перемещает его в начало формы. – user766595