即使我关闭了应用程序,我的winform应用程序仍在后台运行

时间:2015-11-19 07:04:15

标签: c# winforms visual-studio-2012 visual-studio-2013

与标题所说的一样,我关闭应用后,我的WinForm应用程序仍会在后台运行。我已将下面的内容放入我的编码中:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    Application.Exit();
}

但是当我按 Alt + F4 关闭应用程序时,我会检查任务管理器内的进程,它仍在运行。

如果我使用 Alt + F4 关闭应用程序,是否运行FormClosing()

1 个答案:

答案 0 :(得分:2)

我假设您有一些仍在运行的线程并阻止程序关闭。

我使用该函数检查线程是否仍然存活:

  int maxLoops = 100;
  bool oneIsBusy = true;
  while (maxLoops-- > 0 && oneIsBusy)
  {
         oneIsBusy = false;
         Thread.Sleep(100);
         Application.DoEvents();
         foreach (Thread thread in ThreadList)
         {
              oneIsBusy |= thread.IsRunning;
         }
    }

您应该在每个线程上保留一个日志,然后等待它们关闭。 不应在Application.Exit()中调用FormClosing,因为无论如何都会调用它。