C # erhalten Prozessausgabe während der Ausführung

Gibt es überhaupt eine Möglichkeit, die Standardausgabe eines gespawnten Prozesses umzuleiten und sie als Ereignis zu erfassen? Alles, was ich gesehen habe, führt nach Abschluss des Vorgangs ein ReadToEnd aus. Ich möchte in der Lage sein, die Ausgabe zu erhalten, während sie gedruckt wird.

Bearbeiten:

    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);
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage