【问题标题】:c# saving settings while reading settingsc#在读取设置时保存设置
【发布时间】:2011-12-25 19:08:00
【问题描述】:

我有一种将设置保存到文件的方法。如果 dateTimePicker 的值发生变化,则调用此方法。但是我在 Form_Load 加载设置中 -> 我从文件中读取值并使用 dateTimePicker 分配它,但是这个调用方法 save_settings (couse 值已更改)。而此时是问题,因为文件是由程序打开的 - >读取值并且程序想要写入文件更改...... 我该怎么做?

【问题讨论】:

  • 需要查看您当前拥有的代码以帮助纠正您的问题。请复制粘贴到您遇到此问题的代码中

标签: c# exception application-settings file-read file-writing


【解决方案1】:

我认为你有关键部分。有很多方法可以处理这个问题。一种方法是在文件保存周围放置 Lock 语句。这样一个线程应该在另一个线程完成后等待。但是从理解您的问题来看,我认为问题出在您的设计上。据我了解,您试图同时读写。也许您应该声明全局布尔变量 isToSave 。这将指示您何时可以保存。使用文件时不要忘记使用 using 语句来释放文件 处理。

【讨论】:

  • 我使用了变量检查。谢谢:)
【解决方案2】:

使用某种标志 - 在您开始阅读配置时设置它并在 finally 块中取消设置。设置标志后,忽略对ValueChanged 的调用。由于您在 OnLoad 中加载配置,因此不会有其他原因导致 dateTimePicker 的值发生变化,因为您处于主 UI 线程中并且消息泵目前没有泵送。

【讨论】:

  • 完成后还免费/销毁您的 StreamReader / StreamWriter 对象。v 参考@Gregory 的答案
猜你喜欢
  • 1970-01-01
  • 2010-12-30
  • 2013-05-05
  • 2023-03-27
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多