У меня есть приложение, которое запускает фоновый процесс, и мне нужно показать стандарт этого приложения во время выполнения, например, в режиме реального времени.Я попытался process.OutputDataReceived
, но это сработало после завершения фонового процесса.Но мне нужно показать стандартный вывод при создании этого процесса.
К вашему сведению: я перенаправил стандартный вывод и установил UseShellExecute
false
Вот полные изменения, которые я сделал впроцесс:
ProcessStartInfo t = new ProcessStartInfo();
t.CreateNoWindow = true;
t.FileName = name;
t.Arguments = args;
t.UseShellExecute = false;
t.CreateNoWindow = true;
t.RedirectStandardOutput = true;
t.RedirectStandardError = true;
Process p = new Process();
p.StartInfo = t;
p.OutputDataReceived += P_OutputDataReceived;
p.Start();
p.BeginOutputReadLine();
И мое событие:
private void P_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Textbox1.Text = e.Data;
}
Также я попробовал это с файлом Python, его исполняемой версией и исполняемым файлом C, но результат тот жеиз них.
Редактировать: я пытался это решение, но снова получил тот же результат
** Обновление 04.06.2018: ** Я только что обнаружил, что P_OutputDataReceived
событие также инициируется, когда приложение ожидает стандартного ввода, но все еще не может найти способ вызвать это событие в режиме реального времени