有没有办法迭代一个数组/列表并启动一个进程,并等到它退出直到启动下一个进程,依此类推?
我有代码:
string[] processPaths = new string[]{ @"c:\foo.exe", @"c:\bar.exe" };
foreach(string s in processPaths){
Process p = new Process();
p.Exited += (obj, ev) => { continue; };
}
但很明显,进程是异步执行的,lambda函数不是foreach
循环的一部分。它是一个控制台应用程序,我不介意它是否在主线程上运行。
答案 0 :(得分:4)
Process.WaitForExit()
正是您要找的。 p>
指示Process组件无限期地等待关联进程退出。
答案 1 :(得分:3)
foreach (var name in names)
{
var process = Process.Start(name);
process.WaitForExit();
}