2011-12-28 77 views
0

如果用戶在設置生效之前更改設置,我的項目需要重新啓動。我創建了一個DialogResult提示,詢問用戶是否要重新啓動程序。我調用一個MessageBox,它返回一個Yes/No,如果你點擊「否」,它的行爲就會適當,並且不會關閉程序。如果你選擇「是」,應用程序關閉......就是這樣,不重啓。我確實有一些關閉的驗證正在進行,我讀過的內容可能會導致問題,但我的印象是程序關閉時出現問題,無法重新啓動?什麼可能導致應用程序無法重新啓動?除了調用它之外,還有更多的方法需要我去做嗎?我的Application.Restart沒有完成?

我試圖重新啓動應用程序調用的方法:

Application.Restart(); 

至於我是否使用線程,我不自覺地使用線程,因爲我真的不知道這意味着什麼是誠實的。

+0

請不要在「C#」等前加上標題。爲此使用標籤。 – 2011-12-28 05:10:43

+0

你可以發佈一些代碼並更好地解釋你的情況嗎? – 2011-12-28 05:11:58

+0

你在使用線程嗎?任何阻止方法? – Matthias 2011-12-28 05:14:57

回答

0

因此,感謝上面的鏈接,我發現了對不同線程的推薦,這是一個很好的解決方法,只是使用Application.Restart()方法。

System.Diagnostics.Process.Start(Application.ExecutablePath); 
Application.Exit(); 

它允許我的程序非常有效地重新啓動,儘管我的關閉驗證。 這可能仍然是一個問題,如果我做了關於Application.Exit調用的任何關閉驗證。

1

通常,當您使用此方法時,您的應用程序將重新啓動。

這通常是一個例行操作,但我在您的問題中看到,當應用程序關閉時,您有一些驗證邏輯正在運行。因此,我大約90%確定發生了這個錯誤,因爲其中一些驗證失敗了。發佈驗證碼,有人可以幫助您調試問題。