c # сохранение настроек при чтении настроек - PullRequest
0 голосов
/ 25 декабря 2011

У меня есть метод, который сохраняет настройки в файл.Этот метод вызывается, если значение dateTimePicker изменилось.Но у меня в настройках загрузки Form_Load -> Я читаю значение из файла и присваиваю его с помощью dateTimePicker, но этот метод вызова save_settings (значение couse изменилось).И в этот момент проблема в том, что файл открыт программой -> чтение значений и программа хочет записать изменения в файл ... Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 25 декабря 2011

Я думаю, что у вас есть критический раздел.Есть много способов решить эту проблему.Одним из способов является использование оператора Lock для сохранения файла.Таким образом, один поток должен ждать после завершения другого потока.Но из понимания твоего вопроса я думаю, что проблема в твоем дизайне.Как я понимаю, вы пытаетесь читать и писать одновременно.Возможно, вам следует объявить глобальную переменную bool isToSave.Это будет указывать, когда вы можете сохранить.При работе с файлом не забудьте использовать оператор using для освобождения дескриптора файла.

0 голосов
/ 25 декабря 2011

Используйте какой-нибудь флаг - установите его, когда вы начнете читать конфигурацию, и сбросьте его в блоке finally.Когда флаг установлен, игнорируйте вызовы на ValueChanged.Поскольку вы загружаете конфигурацию в OnLoad, не будет других причин для изменения значения dateTimePicker, потому что вы находитесь в основном потоке пользовательского интерфейса, а насос сообщений в настоящий момент не перекачивает.

...