日期:2014-05-17  浏览次数:20426 次

子进程如何关闭父进程
在Process A中 Process.Start 一个Process B

问题:如何在Process B 中 结束 Process A?

谢谢。

------解决方案--------------------
http://blog.csdn.net/tianyinlove/article/details/5270171
看看这个应该能帮到你,进程之间应该没有父与子的关系。都是相互独立的。所以你可以通过进程名称关闭试试
------解决方案--------------------
C# code

            Process p = new Process();
            p.StartInfo.FileName = "notepad.exe";
            p.Start();
            p.WaitForExit();
            Environment.Exit(0);

------解决方案--------------------
探讨
能否给出代码?

引用:

在A中,B Process Start之后WaitForExit,然后A自己关闭自己

------解决方案--------------------
那就像4L说的,在B的Main函数的args中把A的ProcessId传进来,B做完之后根据ProcessId把A进程结束掉。
C# code

A.exe
Process proB = new Process();
proB.StartInfo.FileName = "B.exe";
proB.StartInfo.Arguments = Process.GetCurrentProcess().Id.ToString();
proB.Start();

B.exe
static void Main(string[] args)
{
    int proAId;
    if(args.Length > 0)
    {
        int.TryParse(args[0], out proAId);
    }
    // do something
    if(proAId > 0)
    {
        Process proA = Process.GetProcessById(proAId);
        if(proA != null)
        {
            proA.Kill();
        }
    }
}