¿Hay alguna forma de redirigir la salida estándar de un proceso engendrado y capturarlo mientras está sucediendo? Todo lo que he visto solo hace un ReadTo End después de que el proceso haya terminado. Me gustaría poder obtener el resultado mientras se está imprimiendo.C# get process output while running
Editar:
private void ConvertToMPEG()
{
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
//Setup filename and arguments
p.StartInfo.Arguments = String.Format("-y -i \"{0}\" -target ntsc-dvd -sameq -s 720x480 \"{1}\"", tempDir + "out.avi", tempDir + "out.mpg");
p.StartInfo.FileName = "ffmpeg.exe";
//Handle data received
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.Start();
}
void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Debug.WriteLine(e.Data);
}
Sí, y además necesita establecer 'RedirectStandardOutput' en true para que esto funcione. – vcsjones
@vcsjones: solo se está escribiendo una publicación adicional. – Tigran
Como en la respuesta [aquí] (http://stackoverflow.com/a/3642517/74757). –