Я пытаюсь уменьшить использование памяти приложением winForm.Просто открывать и закрывать диалог winform увеличит использование памяти
В приложении есть основная форма и форма настройки. Когда была нажата кнопка «Настройка», форма настройки будет отображаться как модальная форма, форма настройки загрузит данные app.config из файла конфигурации и прочитает их в памяти как Hashtable. После закрытия формы настройки он вызовет метод Dispose, присущий Windows.Forms.Form. Метод Dispose так же прост, как и для объектов Hashtables и app.config.
Показать SettingForm в modalform:
private void btnSettings_Click(object sender, EventArgs e)
{
frmConfig form = new frmConfig();
form.StartPosition = FormStartPosition.CenterScreen;
//MessageBox.Show(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase));
form.ShowDialog(this);
form.Dispose();
}
Метод Dispose:
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
// Release managed resources
Logger.Verbose("Disposing SettingForm");
mySetting = null;
testFtp = null;
}
base.Dispose(disposing);
}
Примечание: mySetting является экземпляром класса со всеми данными App.config были нагрузки в Hashtable, и testFtp - это настраиваемый объект для функции ftp. Должен ли я реализовать метод Dispose для этого два класса и с использованием
mySetting.Dispose();
testFtp.Dispose();
вместо них установить нулевое значение, так как они сам себе/справиться с неуправляемыми ресурсами?
Но каждый раз нажимайте кнопку «Настройка» и закрывайте форму настройки, увеличивая частный байт на несколько сотен K. Утечка памяти? Как я могу избавиться от него?
Это поможет, если вы разместите хотя бы часть своего кода, в частности код, в котором вы показываете форму, и ваш полный метод Dispose из формы настройки. – MusiGenesis
Кроме того, простой вызов logging или debug.print или что-то еще внутри метода Dispose будет проверять, действительно ли он вызван или нет. – MusiGenesis
Установка ссылки на 'null' не освобождает память. –