ここに問題があります.....
ProcessStartInfoのリストを次のように持っていますList<ProcessStartInfo>
Series
ieでプロセスを開始したい
最初のプロセスを開始した場合、リストの2番目のプロセスは、最初のプロセス(終了または中止)のときにのみ開始する必要があります。
私はそれを次のように試します.....
private void startSeriesExecution()
{
List<string> programpath = new List<string>();
programpath.Add(@"C:\Program Files\Internet Explorer\iexplore.exe");
programpath.Add(@"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE");
foreach (var VARIABLE in programpath)
{
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = VARIABLE,
Arguments =
"www.google.com"
};
try
{
using (Process process=Process.Start(startInfo))
{
if (process.WaitForExit(Int32.MaxValue))
{
continue;
}
}
}
catch (Exception)
{
continue;
}
}
}
マルチスレッド用のカスタムクラスを使用して実行startSeriesExecution
しているので、すべてのプロセスが同時に実行されます。
private void Button_Click(object sender, RoutedEventArgs e)
{
// This function starts the Execution in different thread
Start.Work(startSeriesExecution).OnComplete(onSeriesExecutionComplete).Run();
}
また、私が観察したもう1つのこと...
1つのプロセスがすでに実行されている場合...IEがすでに実行されており、実行されたstartSeriesExecution()
とします。この場合、すでに実行されているプロセス(IE)が開始されます...その後、forループ全体が実行されます...つまり、リスト内のすべてのプロセス実行されます...
どうすればいいのかわからなくなった…。