与标题所说的一样,我关闭应用后,我的WinForm应用程序仍会在后台运行。我已将下面的内容放入我的编码中:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
但是当我按 Alt + F4 关闭应用程序时,我会检查任务管理器内的进程,它仍在运行。
如果我使用 Alt + F4 关闭应用程序,是否运行FormClosing()
?
答案 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
,因为无论如何都会调用它。