Capturing process output via OutputDataReceived event
c#, process, stdout
Solution
You need to call
mProcess.BeginOutputReadLine();
BeginOutputReadLine - "Begins asynchronous read operations on the redirected StandardOutput stream of the application."
Problem
I'm trying to capture process output in "realtime" (while it's running). The code I use is rather simple (see below). For some strange reason the OutputDataReceived event is never called. Why? ``` private void button2_Click(object sender, EventArgs e) { // Setup the process start info var processStartInfo = new ProcessStartInfo("ping.exe", "-t -n 3 192.168.100.1") { UseShellExecute = false, RedirectStandardOutput = true }; // Setup the process mProcess = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true }; // Register event mProcess.OutputDataReceived += OnOutputDataReceived; // Start process mProcess.Start(); mProcess.WaitForExit(); } void OnOutputDataReceived(object sender, DataReceivedEventArgs e) { //Never gets called... } ```