У меня есть модель глубокого обучения, написанная на python, и в качестве входных данных требуется путь к видео. Я пытаюсь создать графический интерфейс для этой модели с использованием WPF, и модель была преобразована в файл приложения.
Поскольку время, необходимое модели для импорта пакетов, слишком велико, я хочу запустить процесс файла приложения python при инициализации главного окна WPF. Затем я могу записать видео и отправить путь этого видео этому процессу, а после того, как получу вывод от этой модели, я могу записать другое видео и снова отправить новый путь к модели.
Я пытался использовать backgroundworker и thread, но оба они могут отправлять аргументы только при инициализации процесса, и ни один из них не может отправлять аргументы в фоновый процесс во время выполнения процесса. И только после завершения процесса я могу получить вывод из фонового потока.
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
Process p_exe = new Process();
p_exe.StartInfo.FileName = @"C:/dist/predict/predict.exe";
p_exe.StartInfo.UseShellExecute = false;
p_exe.StartInfo.RedirectStandardOutput = true;
p_exe.StartInfo.RedirectStandardInput = true;
p_exe.StartInfo.CreateNoWindow = true;
p_exe.StartInfo.Arguments = e.Argument.ToString();
p_exe.Start();
e.Result = p_exe.StandardOutput.ReadToEnd();
p_exe.WaitForExit();
p_exe.Close();
}
Как я могу отправлять аргументы и получать выходные данные из фонового потока во время выполнения процесса?