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; };
}

しかし、明らかにプロセスは非同期で実行され、ラムダ関数はforeachループの一部ではありません。これはコンソールアプリケーションであり、メインスレッドで実行してもかまいません。

4

2 に答える 2

4

Process.WaitForExit()あなたが探しているものです。

関連するプロセスが終了するまで無期限に待機するようにプロセスコンポーネントに指示します。

于 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 に答える