当应用程序进程被终止/崩溃时终止子进程



我正在从我的应用程序创建新进程,并希望在我的应用程序崩溃时/如果我的应用程序崩溃时终止这些进程。

所以我找到了这篇文章:当父进程被杀死时杀死子进程。我以第一个示例将所有代码复制到函数 public void Close() 下的新类中。

遇到错误 - 当前上下文中不存在名称Win32,所以我添加了Microsoft.Win32 现在另一个错误 - 无法识别CloseHandle

命名空间"Microsoft.Win32"中不存在类型或命名空间名称"CloseHandle"(是否缺少程序集引用?

我该如何解决它?

一种更简单的方法 - 或者我相信

跟踪您启动的所有进程。

ArrayList chilProcess_id = new ArrayList();
    public void process_starter()
    {            
        Process p;
        p = new System.Diagnostics.Process();           
        p.StartInfo.FileName = "YOUR PROCESS PATH";
        if (!p.Start())
             chilProcess_id.Add(p.Id);
    }

现在,在退出之前,请终止这些进程。

public void exitApplication()
    {
        Process p;
        foreach (int p_id in chilProcess_id)
        {
            p = Process.GetProcessById(p_id);
            try
            {
                if(!p.HasExited)
                    p.Kill();
            }
            catch (Exception e)
            {
                //Handle the exception as you wish
            }
        }
    }

对于数组列表添加命名空间

using System.Collections;

对于进程添加命名空间

using System.Diagnostics;

相关内容

  • 没有找到相关文章

最新更新