代码之家  ›  专栏  ›  技术社区  ›  JoelFan

Git for windows似乎可以创建永不消亡的子进程

  •  0
  • JoelFan  · 技术社区  · 3 年前

    我使用以下代码调用 git 来自C#:

    var pInfo = new ProcessStartInfo
    {
        FileName = "git",
        Arguments = "checkout master",
        UseShellExecute = false
    };
    
    using var p = Process.Start(pInfo);
    Console.WriteLine(p.Id);
    p.WaitForExit();
    

    打印的进程ID是3709。当我的程序结束时,我查看任务管理器,看到 git.exe 进程仍然使用不同的ID运行,例如8865。此进程将无限期运行。

    在我看来 吉特 我的程序启动的进程产生了第二个 吉特 永远不会退出的过程。我有什么办法阻止这种行为吗?事实上,每次我运行程序时,都会有另一个 git.exe 这个过程被无限期地抛在后面,随着时间的推移,加起来很多,直到我重新启动。

    (或者,是否有其他方法可以调用 吉特 除了运行可执行文件?)

    0 回复  |  直到 3 年前