Capturando la salida del proceso a través del evento OutputDataReceived

Estoy intentando capturar la salida del proceso en "tiempo real" (mientras se está ejecutando). El código que uso es bastante simple (ver más abajo). Por alguna extraña razón, el evento OutputDataReceived nunca se llama. ¿Por qué?

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...
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta