WriteLine будет автоматически использовать Enviroment.Newline тогда?

я есть (C #) консольное приложение, которое поддерживает состояние. Состояние может быть изменено путем подачи приложения с различным вводом через консоль. Я должен быть в состоянии подать приложение с небольшим вводом, затем прочитать промывку вывода и повторить.

Я создаю новый процесс и выполняю всю обычную работу по перенаправлению ввода / вывода. Проблема в том, что после того, как я послал ввод и вызовReadLine() на стандартном выходе он не возвращает значение, прежде чем я позвонюClose() на стандартном вводе, после которого я не могу больше писать в поток ввода.

Как я могу держать входной поток открытым, все еще получая вывод?

 var process = new Process
                          {
                              StartInfo =
                                  {
                                      FileName =
                                          @"blabal.exe",
                                      RedirectStandardInput = true,
                                      RedirectStandardError = true,
                                      RedirectStandardOutput = true,
                                      UseShellExecute = false,
                                      CreateNoWindow = true,
                                      ErrorDialog = false
                                  }
                          };


        process.EnableRaisingEvents = false;

        process.Start();

        var standardInput = process.StandardInput;
        standardInput.AutoFlush = true;
        var standardOutput = process.StandardOutput;
        var standardError = process.StandardError;

        standardInput.Write("ready");
        standardInput.Close(); // <-- output doesn't arrive before after this line
        var outputData = standardOutput.ReadLine();

        process.Close();
        process.Dispose();

Консольное приложение, из которого я перенаправляю ввод-вывод, очень простое. Он читает из консоли, используяConsole.Read() и пишет в него, используяConsole.Write(), Я точно знаю, что эти данные читаемы, так как у меня есть другое приложение, которое читает из него, используя стандартный вывод / ввод (не записанный в .NET).

Ответы на вопрос(1)

Ваш ответ на вопрос