我正在从一个绑定到xaml窗口的类中使用ObjectDataProvider
调用Application.Current.Shutdown()
,但应用程序没有关闭。有人能帮我理解为什么吗?我的应用程序在主窗口关闭后没有完全关闭,它不会从任务管理器的进程列表中消失。
我正在从一个绑定到xaml窗口的类中使用ObjectDataProvider
调用Application.Current.Shutdown()
,但应用程序没有关闭。有人能帮我理解为什么吗?我的应用程序在主窗口关闭后没有完全关闭,它不会从任务管理器的进程列表中消失。
尝试使用 Environment.Exit(0)
代替
你是否创建了任何用于后台处理的线程?如果创建了,请确保在它们上面设置.IsBackground
属性,否则它们会使应用程序一直运行。
不要忘记添加这个:
private void Window_Closed(object sender, EventArgs e)
{
Application.Current.Shutdown();
}
_myDialog.Close();
关闭所有窗口:
foreach(var window in Application.Current.Windows.ToList())
{
window.Close();
}
我遇到了一个问题,即使主窗口关闭了,应用程序也无法关闭。原来我在闪屏界面上使用了Hide()而不是Close(),导致它仍然潜伏在后台,保持应用程序的运行。
我遇到了同样的问题,应用程序进程并没有停止,尽管应用程序已经关闭。
在我的情况下,我从BackgroundWorker打开了一个窗口(以下是代码)
BackgroundWorker BG = new BackgroundWorker();
BG.DoWork += new DoWorkEventHandler(BG_DoWork);
StockMinWindow MinWindow = new StockMinWindow(null); -------- this is the problem
BG.RunWorkerAsync();
在运行BackgroundWorker之前实例化窗口似乎不是问题,但删除该行后,应用程序正确关闭
我使用主线程从BackgroundWorker打开我的窗口(以下是代码)
View.Dispatcher.BeginInvoke(new Action(delegate()
{
StockMinWindow MinWindow = new StockMinWindow(StockMinList);
MinWindow.Owner = View;
MinWindow.ShowDialog();
}));
override OnStartup()
中调用Shutdown()
无法正常工作,改为使用Environment.Exit(0)
。 - Jake Berger