1

有没有办法遍历数组/列表并启动一个进程,然后等到它退出直到启动下一个,等等?

我有代码:

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

4

2 回答 2

4

Process.WaitForExit()就是你要找的。

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

于 2012-11-07T01:29:59.570 回答
3
foreach (var name in names)
{
   var process = Process.Start(name);
   process.WaitForExit();
}
于 2012-11-07T01:39:02.883 回答