7

Application.Current.Shutdown()从一个绑定到 xaml 窗口的类调用ObjectDataProvider,但应用程序没有关闭。谁能帮我理解为什么?关闭主窗口后,我的应用程序没有完全关闭,它不会从任务管理器的进程列表中消失。

4

6 回答 6

26

试试Environment.Exit(0)

于 2009-05-14T06:39:33.683 回答
11

您是否创建了任何线程来进行后台处理?如果有,请确保.IsBackground在它们上设置属性,否则它们可以保持应用程序运行

于 2009-05-01T08:15:22.887 回答
5

不要忘记添加这个:

private void Window_Closed(object sender, EventArgs e)
{
  Application.Current.Shutdown();
}

希望这可以帮助。

于 2009-05-22T14:19:04.967 回答
1

我遇到了一个问题,即使主窗口关闭,应用程序也不会关闭。原来我在启动画面上做了 Hide() 而不是 Close() 所以它仍然潜伏在后台保持应用程序活着。

于 2014-04-01T08:47:02.173 回答
1

如果您的应用程序中有多个窗口或对话框,您可能需要明确关闭每个窗口或对话框。

关闭对话框:

_myDialog.Close();

关闭所有窗口:

foreach(var window in Application.Current.Windows.ToList())
{
    window.Close();
}
于 2009-05-01T09:16:57.823 回答
0

我遇到了同样的问题,尽管应用程序关闭,但应用程序进程并没有停止。

就我而言,我从 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();
 }));

希望能帮助到你。

于 2011-11-23T21:25:22.880 回答