Отправка ввода / вывода вывода из консольного приложения (C # / WinForms)

У меня есть форма с 3 элементами управления:

Текстовое поле для ввода пользователем команд для отправки в консольное приложение,Кнопка для подтверждения команд для отправки иДоступное только для чтения текстовое поле для отображения выходных данных из приложения.

Я хочу, чтобы пользователь вводил команды в первом текстовом поле, нажмите кнопку, чтобы войти и получить отзыв через второе текстовое поле.

Я умею пользоватьсяProcessStartInfo.RedirectStandardOutput но приложение зависает при использованииStandardOutput.ReadToEnd().

Я посмотрел на асинхронныйProcess.BeginOutputReadLine() но, хотя мое приложение не зависает, каким-то образом я не получаю ответа в текстовом поле, оно абсолютно ничего не делает.

Вот мой код:

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

Есть ли способ, которым я могу сделать это гладко? Благодарю.