我的应用程序在退出

时间:2015-06-11 12:10:22

标签: c#

我知道这个问题很好,甚至更好的回复,但我尝试了我在网上找到的所有内容,我的winform应用程序仍在使用RAM的任务管理器的进程列表中。

我正在使用Quartz.NET,这就是我关闭我的应用的方式:

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        scheduler.Shutdown();
        scheduler2.Shutdown();
        Application.Exit();
    }

我使用两个调度程序。我尝试杀死我的应用程序中的进程,我使用FormClosing但它仍然在那里。

编辑:原来没有调用Form1_FormClosed的事件,我必须通过表单属性添加它。

2 个答案:

答案 0 :(得分:5)

最可能的原因是:另一个线程(UI线程除外)仍在运行,并阻止进程终止。您可以使用

强制应用程序在FormClosed事件处终止该过程
Environment.Exit(0);

因为Application.Exit();“尝试”正常退出应用程序,但Environment类中的那个强制它立即终止。

答案 1 :(得分:0)

必须有一个仍在运行的线程。您可以使用Thread.IsBackground Property将所有线程设置为后台线程。当主线程结束时,您将确保所有线程都已结束

在这种情况下调用Environment.Exit(0);是一种不好的做法。我会尝试调查哪个线程没有结束以及关闭后发生了什么