保存用户设置的最佳时间

时间:2011-06-19 06:48:15

标签: c# .net wpf

我有一个使用其用户设置的.Net应用程序。保存这些设置的最佳时间是什么?

要清楚,我正在调用此函数来保存:

Storage.Properties.Settings.Default.Save()

首先,我想把它们保存在每一个变化上,但这很慢,而且似乎没有必要。文档表明,只有在应用程序关闭时才需要保存它们,在它们的示例中,当表单关闭时。

但是,如果有两个应用程序实例正在运行怎么办?看来,如果我等到Application_Exit事件,设置将不会在实例之间持续存在。应用程序的新实例将读取旧用户设置,从而导致错误。

那么,最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

答案是针对特定应用的,因此没有最佳实践。例如,有些应用甚至不允许多个实例。

但大多数应用程序倾向于执行以下任一操作:

  • 它们不会经常更改设置,因此请一次保存一整套更改(例如,在配置对话框中应用更改时)。
  • 他们经常在后台更改,因此设置某种计时器事件以便以特定间隔保存。
  • 他们经常更改,但明确地说,因此有一些“保存更改”按钮供用户点击。

退出时保存的问题是当您遇到导致未处理异常的错误时,您的更改可能会丢失。如果您的应用程序应该在后台运行,这可能会比您想象的更频繁地发生,特别是在它仍处于开发/测试阶段时。

我用几年前写的玩具系统托盘式应用程序采用了“退出保存”策略,后悔了。显式保存和/或间隔保存可能是一个更好的选择。