在C#中一个接一个地启动进程

时间:2012-11-07 01:27:05

标签: c# process foreach

有没有办法迭代一个数组/列表并启动一个进程,并等到它退出直到启动下一个进程,依此类推?

我有代码:

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循环的一部分。它是一个控制台应用程序,我不介意它是否在主线程上运行。

2 个答案:

答案 0 :(得分:4)

Process.WaitForExit()正是您要找的。

  

指示Process组件无限期地等待关联进程退出。

答案 1 :(得分:3)

foreach (var name in names)
{
   var process = Process.Start(name);
   process.WaitForExit();
}