繁体   English   中英

应用程序设置不会始终保存

[英]Application settings do not allways save

我有点Heisenbug 我有一份最近搜索过的内容的列表,有时它会保存历史,有时却不会。 当我连接调试器并逐步执行StartFind()它每次都起作用。

public Form1()
{
    oldClinicsBindingSource.DataSource = ContractFlowTool.Properties.Settings.Default.RecentClinics;
}
private void StartFind()
{
    (...)
    if (oldClinicsBindingSource.Contains(newClinic))
        oldClinicsBindingSource.Remove(newClinic);
    oldClinicsBindingSource.Insert(0, newClinic);
    oldClinicsBindingSource.EndEdit();
    while (ContractFlowTool.Properties.Settings.Default.NumberOfClinicsToRemember < oldClinicsBindingSource.Count)
    {
        oldClinicsBindingSource.RemoveAt(oldClinicsBindingSource.Count - 1);
    }
    ContractFlowTool.Properties.Settings.Default.Save();
    (..)

}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ //Breakpoint on this line
    ContractFlowTool.Properties.Settings.Default.Save();
}

//In Settings.Designer.cs
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.ArrayList RecentClinics {
    get {
        return ((global::System.Collections.ArrayList)(this["RecentClinics"]));
    }
    set {
        this["RecentClinics"] = value;
    }
}

如果在Form1_FormClosing内的保存之前在{上放置一个断点,然后单击继续(我什至不跳过),它将正确保存。 如果断点不存在,则不会保存。

该程序确实在其他部分使用了后台工作程序,但是在我的测试用例中它们并未运行。

任何帮助将不胜感激。

StartFind()中的Save()似乎已解决了该问题。

我仍然很好奇为什么会这样。 绑定源是否使用内部线程?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM