2011-12-25 101 views
0

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

+0

需要查看您当前拥有的代码以帮助解决您的问题..请复制粘贴到您遇到此问题的代码中 – MethodMan 2011-12-25 19:10:53

回答

1

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

+0

我使用了变量检查。谢谢:) – sczdavos 2011-12-25 20:42:18

0

使用某种标志 - 在开始读取配置并在finally块中取消设置时设置它。设置标志时,忽略对ValueChanged的呼叫。由于您正在加载OnLoad中的配置,所以dateTimePicker的值将不会因为其他原因而改变,因为您处于主UI线程中,并且此时消息泵并未抽取。

+0

当done.v参考@ Gregory的答案时还释放/销毁您的StreamReader/StreamWriter对象 – MethodMan 2011-12-25 19:37:14