我有一个需要执行许多命令行脚本的需求。它们当前存储在一个
我尝试了下面展示的方法,但发现它存在缺陷,因为最后一个命令不一定会最后“结束”。事实上,我发现最后一个命令甚至可能是第一个完成的。所以,我认为我需要像
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
从Component
继承了一个终结器,但是及早处理是一个好习惯。在这个例子中也很容易做到(只需在每个循环迭代后调用WaitForExit()
之后的Close()
即可)。 - Mike Strobel