所以我有一个用 .NET 4.0 编写的 WPF 应用程序。在应用程序中,有一个导入按钮,它执行 OpenFileDialog 搜索 XML 文件。打开文件后,它会读取 XML,从中检索数据并将其存储在 Properties.Settings.Default 中。基本上,它是一个人们可以导出和导入设置的系统。效果很好。
现在,我想做的是在导入后保存新设置,然后杀死应用程序并重新启动它。很简单,保存设置,启动应用程序的新实例,杀死旧实例。
Properties.Settings.Default.Save();
System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
System.Diagnostics.Process.GetCurrentProcess().Kill();
然而,问题是应用程序的新实例的启动通常是在设置完成保存之前。所以新实例开始检索旧设置。我想我可以通过在进程中添加一个简单的睡眠来解决这个问题;但这非常hacky。
System.Threading.Thread.Sleep(1000);
如果保存过程需要超过 1000 毫秒怎么办?然后老问题仍然存在。我知道我可以增加睡眠定时器,但我确信必须有更好的方法。有没有办法让最后两行直到第一行完成后才激活?