Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("YOUPROGRAM_CONSOLE.exe" );
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
myProcess.Close();
Источник: MSDN
Отредактировано:
Если вам требуется получить сообщение об ошибке, вам необходимо использовать асинхронную операцию. Вы можете использовать асинхронные операции чтения, чтобы избежать этих зависимостей и их потенциала взаимоблокировки. Кроме того, вы можете избежать условия взаимоблокировки, создав два потока и считав выходные данные каждого потока в отдельном потоке.