LocalSettings如何工作?

我正在努力解决一个问题 – 实际上LocalSettings是如何工作的。 这是一个ApplicationDataContainer类,但是这是一种文件? 可能是的,但是当它被保存了吗?

例如,我们可以保存一些这样的数据:

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

但是在我们添加/更改值之后将其保存到文件中,或者在App被暂停/终止时保存在内存中的某处并保存?

而问题的主要目的是:

  • 当从并发进程/线程访问LocalSettings时,是否需要使用Mutex来保护上述代码行?
  • 是否有机会在同时保存LocalSettings时发生exception?

Solutions Collecting From Web of "LocalSettings如何工作?"

LocalSettings(和RoamingSettings)提供了一个概念上与Windows注册表等同的访问模型。 写操作是同步的,原子的,并且实现了最后一个写者的胜利语义。 对设置所做的任何更改都可以立即用于其他线程。

注意:如果您需要创建包含多个键/值对的原子设置,则应使用ApplicationDataCompositeValue类 。