我有一個WPF應用程序,用兩種方法在App.cs
文件Application_Startup
和Application_Exit
,分別鉤在應用程序的Startup
和Exit
事件。下面是這兩個方法的實現:應用立即終止()
private void Application_Startup(object sender, StartupEventArgs e)
{
try
{
if (LoginModel.TryLoginUsingSavedCredentials())
{
MainView view = new MainView();
view.Show();
}
else
{
LoginView loginView = new LoginView();
var result = loginView.ShowDialog();
if (result.HasValue && result.Value)
{
MainView view = new MainView();
view.Show();
}
}
}
catch (FaultException ex)
{
Views.MessageBox.ShowMessage("Login failed",
string.Format("Unabled to login.\r\n{0}", ex.Message),
Entities.Enums.DialogType.OK,
Entities.Enums.DialogIcon.Error);
}
}
private void Application_Exit(object sender, ExitEventArgs e)
{
ConnectionFactory.Instance.CloseAllProxyChannels();
}
當我運行應用程序,如果LoginModel.TryLoginUsingSavedCredentials()
返回false,則顯示LoginView
。現在,我在if(result.HasValue ...)
處設置了一個斷點,然後我介入。MainView
被創建並且view.Show()
被執行,但是,調試器箭頭立即跳轉到Application_Exit
方法,並且應用程序終止。我看不出有任何異常,輸出誤差,轉儲文件等
奇怪的是,如果我在Application_Startup
註釋掉所有的邏輯,只是把這兩行:
MainView view = new MainView();
view.Show();
然後應用程序工作得很好。任何想法可能會出錯?提前致謝。
該訣竅。謝謝。 – PoweredByOrange
不客氣,很高興幫助:) –