关闭表单后终止应用程序

本文关键字:终止 应用程序 表单 | 更新日期: 2023-09-27 18:27:06

我用C#编写了一个应用程序。但是,即使在关闭表单之后,应用程序仍将运行。也就是说,.exe和.vshost文件仍将运行。因此,我使用了以下代码来终止应用程序。但它并没有终止。

   public void Form1_Closing(object sender, FormClosingEventArgs e)
    {
        Process[] pArry = new Process[500];
        pArry = Process.GetProcesses();
        foreach (Process p in pArry)
        {
            string s1 = p.ProcessName;
            s1 = s1.ToLower();
            if ((s1.Equals("new_prj.vshost")))
            {
                p.Kill();
            }
        }
    }

我的项目名称是new_prj。如果我在Button_Click函数中编写相同的代码片段,它就能正常工作。但在表单关闭功能中不起作用。有人遇到过同样的问题吗?

关闭表单后终止应用程序

你能用这个吗?

Application.Exit();

这可能有几个原因。如果它是一个多线程应用程序,那么您可能有另一个线程在运行,从而阻止进程终止。

请提供更多详细信息。

编辑

我发布了一个类似的问题,并得到了一些关于如何使用线程的意见。请参阅此帖子。

以下是一个有用的代码,来自对帖子的回答:

public void Start()
{
    workerThread = new Thread(() => DoWork());
    doWork = true;
    workerThread.IsBackground = true;
    workerThread.Start();
}

注意IsBackground = true;

如果你真的想从任何地方退出你的应用程序,你可以使用Environment.Exit(),但我建议用你的表单来解决这个问题。如果你发布更多的代码,我们可能会找到问题。

您也可以尝试Application.Exit,但正如Carsten所说,您试图治疗症状而不是原因。

您是否尝试过简单地使用Application.Exit()?