Envío de entrada / obtención de salida desde una aplicación de consola (C # / WinForms)

Tengo un formulario con 3 controles:

Un cuadro de texto para que el usuario ingrese comandos para enviar a una aplicación de consola,Un botón para confirmar los comandos a enviar yUn cuadro de texto de solo lectura para mostrar el resultado de la aplicación.

Lo que quiero es que el usuario ingrese comandos en el primer cuadro de texto, presione el botón para ingresar y recibir comentarios a través del segundo cuadro de texto.

Yo se como usarProcessStartInfo.RedirectStandardOutput pero, sin embargo, la aplicación se cuelga cuando la usoStandardOutput.ReadToEnd().

Eché un vistazo a lo asíncrono.Process.BeginOutputReadLine() pero, aunque mi aplicación no se cuelga, de alguna manera no obtengo respuesta en el cuadro de texto, no hace absolutamente nada.

Aquí está mi código:

public partial class MainForm : Form
{

    private void MainForm_Load(object sender, EventArgs e)
    {
        InitializeInterpreter();
    }

    private void InitializeInterpreter()
    {
        InterProc.StartInfo.UseShellExecute = false;
        InterProc.StartInfo.FileName = "app.exe";
        InterProc.StartInfo.RedirectStandardInput = true;
        InterProc.StartInfo.RedirectStandardOutput = true;
        InterProc.StartInfo.RedirectStandardError = true;
        InterProc.StartInfo.CreateNoWindow = true;
        InterProc.OutputDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);

        InterProc.Start();
    }

    private static void InterProcOutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
    {
        if (!String.IsNullOrEmpty(outLine.Data))
        {
           OutputTextBox.Append(Environment.NewLine + outLine.Data);
        }
    }

    private void Enterbutton_Click(object sender, EventArgs e)
    {
        InterProc.StandardInput.Write(CommandtextBox.Text);
        InterProc.BeginOutputReadLine();
    }
}

¿Hay alguna manera de que pueda funcionar sin problemas? Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta