Как работает LocalSettings?

Я борюсь с вопросом - как на самом деле работает LocalSettings. Это класс ApplicationDataContainer, но это какой-то файл? Наверное, да, но когда это сохранено?

Например, мы можем сохранить некоторые данные, как это:

localSettings.Values["exampleSetting"] = "Hello Windows";

но сохраняется ли он в файл сразу после добавления / изменения значения или он сохраняется где-то в памяти и сохраняется, когда приложение приостанавливается / прекращается?

И основная цель вопроса:

  • Нужно ли защищать приведенную выше строку кода, например, с помощью Mutex при доступе к LocalSettings из параллельных процессов / потоков?
  • Есть ли шанс, что мы можем получить исключение при сохранении LocalSettings одновременно?

1 ответ

Решение

LocalSettings (и RoamingSettings) предоставляют модель доступа, которая концептуально эквивалентна реестру Windows. Операции записи являются синхронными, атомарными и реализуют семантику последних писателей. Любые изменения, внесенные в настройки, сразу же становятся доступны другим потокам.

Примечание. Если вам нужно создать элементарный параметр, содержащий несколько пар ключ / значение, вы должны использовать класс ApplicationDataCompositeValue.

Другие вопросы по тегам