【问题标题】:How does LocalSettings work?本地设置如何工作?
【发布时间】:2014-06-30 05:22:18
【问题描述】:

我正在为一个问题苦苦挣扎 - 事实上LocalSettings 是如何工作的。这是一个ApplicationDataContainer 类,但这是某种文件吗?可能是的,但是什么时候保存呢?

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

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

但它是在我们添加/更改值后立即保存到文件中,还是保存在内存中的某个位置并在应用程序暂停/终止时保存?

以及问题的主要目的:

  • 当从并发进程/线程访问 LocalSettings 时,我是否必须使用 Mutex 保护上述代码行?
  • 在保存 LocalSettings 的同时是否有可能出现异常?

【问题讨论】:

    标签: c# windows windows-runtime windows-phone-8.1 win-universal-app


    【解决方案1】:

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

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

    【讨论】:

    • 据我了解,在多个进程/线程中使用 Mutex 时,无需使用 Mutex 进行设置,因为它同步执行所有操作的操作系统。这是否也意味着读写操作堆叠在同一个队列中(一个在另一个竞争时执行)?
    • 正确。您不需要维护自己的互斥锁 - 平台将为您管理同步。但是,您不应该对写入的顺序做出任何假设。
    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多