Git для Windows, похоже, создает подпроцессы, которые никогда не умирают

#c# #process #git-for-windows

Вопрос:

Я использую следующий код для вызова 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();
 

Напечатанный идентификатор процесса, скажем, 3709. Когда моя программа заканчивается, я смотрю на диспетчер задач и вижу git.exe , что процесс все еще работает с другим идентификатором, скажем, 8865. Этот процесс продолжается бесконечно.

Мне кажется, что git процесс, запущенный моей программой, порождает второй git процесс, который никогда не завершается. Есть ли у меня какой-нибудь способ предотвратить такое поведение? Как бы то ни было, каждый раз, когда я запускаю свою программу, на неопределенный срок остается еще один git.exe процесс, который со временем увеличивается, пока я не перезагрузлюсь.

(В качестве альтернативы, есть ли какой-либо другой способ вызова git , кроме запуска исполняемого файла?)