Как мне перебрать аргументы с одним экземпляром ProcessStart?
Я использую следующую процедуру для запуска экземпляра Python для запуска файла py.
public void ClassifyImages(string imagesString)
{
// https://medium.com/emoney-engineering/running-python-script-from-c-and-working-with-the-results-843e68d230e5
// https://www.tensorflow.org/hub/tutorials/image_retraining
ProcessStartInfo start = new ProcessStartInfo();
Process process = new Process();
start.FileName = txtPythonClassify.Text;
string cmd = String.Format("python\\{0}", py.PrjClassifyFile);
start.Arguments = string.Format(@"{0} {1}", cmd, imagesString);
start.UseShellExecute = false;
start.CreateNoWindow = true;
start.RedirectStandardOutput = !start.UseShellExecute;
start.RedirectStandardError = !start.UseShellExecute;
process.StartInfo = start;
process.OutputDataReceived += CaptureClassifyOutput;
process.ErrorDataReceived += CaptureClassifyError;
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.EnableRaisingEvents = true;
process.Exited += new EventHandler(classify_Exited);
}
Это работает нормально, но мне нужно перебирать аргументы вместо инициализации start.FileName для каждого вызова. Что-то вроде этого:
start.FileName = "main.py"
start.UseShellExecute = false;
start.CreateNoWindow = true;
start.RedirectStandardOutput = !start.UseShellExecute;
start.RedirectStandardError = !start.UseShellExecute;
process.OutputDataReceived += CaptureClassifyOutput;
process.ErrorDataReceived += CaptureClassifyError;
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.EnableRaisingEvents = true;
process.Exited += new EventHandler(classify_Exited);
foreach(var s in arguments) //asumming arguments is a list)
{
start.Arguments = s
process.StartInfo = start;
process.Start();
}
Какая лучшая практика?