Есть несколько вещей, которые мешают этому ... Консольное приложение, вероятно, использует клавишу "\ b" для перезаписи процента, возможно, оно не сбрасывается в поток stdout после каждой записи, и предположительно BeginOutputReadLineждет окончания строки перед тем, как предоставить вам данные.
Посмотрите, как вы справляетесь с процессом чтения.StandardOutput.BaseStream через BeginRead (этот код не является асинхронным, и "\ b" нужно будет обрабатывать иначеесли вы ставите прогресс в форме):
while (true)
{
byte[] buffer = new byte[256];
var ar = myProcess.StandardOutput.BaseStream.BeginRead(buffer, 0, 256, null, null);
ar.AsyncWaitHandle.WaitOne();
var bytesRead = myProcess.StandardOutput.BaseStream.EndRead(ar);
if (bytesRead > 0)
{
Console.Write(Encoding.ASCII.GetString(buffer, 0, bytesRead));
}
else
{
myProcess.WaitForExit();
break;
}
}