c#读取设置时保存设置

c#读取设置时保存设置,c#,exception,application-settings,file-read,file-writing,C#,Exception,Application Settings,File Read,File Writing,我有一个将设置保存到文件的方法。如果dateTimePicker的值更改,则调用此方法。但我在表单中有加载设置->我从文件中读取值并用dateTimePicker分配它,但这个调用方法保存设置(couse值已更改)。在这一刻是问题,因为文件是由程序打开->读取值和程序想写入文件更改。。。 我该怎么做呢?我想你们有关键部分。有很多方法可以解决这个问题。一种方法是在文件保存时使用Lock语句。这样,一个线程应该在另一个线程完成后等待。但从理解你的问题来看,我认为问题在于你的设计。据我所知,你试图同时

我有一个将设置保存到文件的方法。如果dateTimePicker的值更改,则调用此方法。但我在表单中有加载设置->我从文件中读取值并用dateTimePicker分配它,但这个调用方法保存设置(couse值已更改)。在这一刻是问题,因为文件是由程序打开->读取值和程序想写入文件更改。。。
我该怎么做呢?

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

使用某种标志-在开始读取配置时设置它,并在
最后
块中取消设置它。设置标志后,忽略对
ValueChanged
的调用。由于您正在
OnLoad
中加载配置,因此dateTimePicker的值更改不会有其他原因,因为您处于主UI线程中,此时消息泵没有泵送。

需要查看您当前拥有的代码,以帮助纠正您的问题。。请复制此问题所在代码中的粘贴。完成后,请释放/销毁StreamReader/StreamWriter对象。v reference@Gregory's answerI使用变量检查。谢谢:)