Я хочу сохранить некоторые изменения пользовательского интерфейса, когда программа закрывается. Я читал, что один из самых простых способов сделать это - с настройками. Я решил, что сохраню эти изменения в настройках всякий раз, когда программа закрывается, вместо сохранения ее каждый раз, когда пользователь меняет эти параметры. Итак, у меня есть следующее:C# - Settings.Default.Save() очень медленный
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Properties.Settings.Default.PostProcessSubs = checkBox_PPSubs.Checked;
Properties.Settings.Default.Save();
}
Это только сохраняет, включен ли этот флажок по умолчанию. Однако, когда у меня это есть, приложение зависает на секунду или два, когда я нажимаю X, чтобы закрыть его. Если я закомментирую команду save(), она закрывается нормально, но, конечно, изменения не сохраняются. Кроме того, все работает нормально, поэтому я нахожу довольно странным, что этот процесс настолько медленный.
BTW, мои настройки не раздуты или что-то еще, у меня есть только два булина и две маленькие строки.
Редактировать: Это происходит только при запуске корыта «Старт без отладки». Запуск прогона отладки или прошивки работает нормально. Довольно странно.
Edit2: no, все еще случается. Медленно, как черт.
Вы проверили местоположение сохраненного файла настроек? Это на сетевом диске или на некоторых более медленных носителях? – sstan
Возможно, CLR немного вписал код. Если вы выполняете второе сохранение в том же запуске программы, это быстрее или нет? – xanatos
Сериализация XML не слишком быстра, но нет никакого сценария, когда она может стоить 4 миллиарда циклов процессора, когда вы делаете это повторно. Это экологическая проблема. Дело 90% - это crapware, который программисты добровольно устанавливают на своей машине, который всегда получает свое нижнее белье в связке в любом XML-файле. Отключите антивирусную программу и повторите попытку. И учитывайте только сохранение, когда ваша программа завершается, сохраняя в тот момент, когда изменения настроек опасны. Если изменение заставляет вашу бомбу бомбить, у вас будут хорошие шансы, что она будет бомбить навсегда. –