我是编程新手。我有一个启动线程的表单应用程序。从那里启动了 4 个新线程。这些线程中的每一个都执行一系列命令行进程,如下所示:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory ="C:\\BLA\\bin_windows";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
startInfo.FileName = "SomeProcess"
Process p = Process.Start(startInfo);
p.WaitForExit();
当表单应用程序关闭时,它会中止第一个线程(不是 4 个单独的线程)。现在我的问题是当我关闭表单时如何强制进程“p”退出?我尝试了以下方法:
foreach (Process p in System.Diagnostics.Process.GetProcessesByName("SomeProcess"))
{
try
{
p.Kill();
p.WaitForExit(); // possibly with a timeout
}
catch
{ continue; }
}
但是,这种方法对我来说似乎有点残酷,并且并不总是很好......有没有一种方法可以让我只识别我自己启动的进程然后终止它们?任何建议都非常感谢。谢谢