У меня проблема здесь .....
У меня есть список ProcessStartInfo как List<ProcessStartInfo>
Я хочу запустить процессы в Series
, т.е.
если я запускаю первый процесс, тогда второй процесс в списке должен начинаться только тогда, когда первый процесс (выход или прерывание) ...
Я стараюсь, как .....
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 процесс уже запущен ... допустим, IE уже запущен, и теперь я выполнил startSeriesExecution()
, и при этом запускается уже запущенный процесс (IE) ... тогда выполняется весь цикл for ... т.е. все процессы в списке выполняются ...
Понятия не имею, как продолжить ....