Có cách nào để chuyển hướng đầu ra tiêu chuẩn của quá trình sinh ra và nắm bắt nó khi nó xảy ra. Tất cả mọi thứ tôi đã thấy chỉ cần một ReadToEnd sau khi quá trình đã kết thúc. Tôi muốn có thể nhận được đầu ra khi nó đang được in.C# nhận được kết quả đầu ra của quá trình trong khi đang chạy
Edit:
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);
}
Có, và ngoài ra, bạn cần đặt 'RedirectStandardOutput' thành true để hoạt động. – vcsjones
@vcsjones: chỉ cần in thêm bài đăng. – Tigran
Như trong câu trả lời [ở đây] (http://stackoverflow.com/a/3642517/74757). –