gpt4 book ai didi

c# - 等到多个命令行进程完成?

转载 作者:太空狗 更新时间:2023-10-29 20:04:39 25 4
gpt4 key购买 nike

我需要执行许多命令行脚本。它们当前存储在 List 中。我想同时运行它们并在所有它们都完成后继续下一步。

我已经尝试了下面显示的方法,但发现它缺乏,因为最后一个命令不一定结束最后。事实上,我发现最后一个命令甚至可以是第一个 完成的命令。所以,我相信我需要像 WaitForExit() 这样的东西,但它在所有 执行进程完成之前不会返回。

for (int i = 0; i < commands.Count; i++)
{
string strCmdText = commands[i];
var process = System.Diagnostics.Process.Start("CMD.exe", strCmdText);
if (i == (commands.Count - 1))
{
process.WaitForExit();
}
}
//next course of action once all the above is done

最佳答案

由于每次调用 Process.Start 都会启动一个新进程,因此您可以单独跟踪它们,如下所示:

var processes = new List<Process>();
for (int i = 0; i < commands.Count; i++)
{
string strCmdText = commands[i];
processes.Add(System.Diagnostics.Process.Start("CMD.exe", strCmdText));
}

foreach(var process in processes)
{
process.WaitForExit();
process.Close();
}

编辑

Process.Close() 在评论中添加

关于c# - 等到多个命令行进程完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com