所以我有一個用.NET 4.0編寫的WPF應用程序。在應用程序中,有一個導入按鈕,該按鈕用於搜索XML文件的OpenFileDialog。打開文件後,它通過XML讀取數據,並從中檢索數據並將其存儲在Properties.Settings.Default中。基本上,它是一個人們可以導出和導入設置的系統。工作很好。直到上一個動作完成後的延遲動作?
現在,我想要做的是在導入之後,它會保存新設置,然後KILLS應用程序並重新啓動它。簡單,保存設置,啓動應用程序的新實例,殺死舊實例。
Properties.Settings.Default.Save();
System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
System.Diagnostics.Process.GetCurrentProcess().Kill();
但是,問題是應用程序的新實例往往開始是設置保存完成之前。所以新實例啓動檢索舊設置。我想我可以通過在流程中添加一個簡單的睡眠來解決這個問題;但是這很不方便。
System.Threading.Thread.Sleep(1000);
如果保存過程需要超過1000毫秒,該怎麼辦?那麼老問題仍然存在。我知道我可以增加睡眠計時器,但我相信必須有更好的方法。有沒有辦法讓它最後2行不激活,直到第一行完成後?
你是對的,它不是異步的。事實證明,當我在應用程序上運行Process.Start時,它不會在與F5調試目錄相同的目錄中啓動它,因此它沒有使用保存的設置。 – 2012-08-18 07:39:55