Atraso de saída padrão do processo C #

Em um formulário C #, estou executando umprocesso com informações de início semelhantes aRedirecionar a saída do console para a caixa de texto em um programa separado eC # obtém saída do processo durante a execução, o processo é executado corretamente, no entanto, a saída demora muito para aparecer noEvento DataReceived.

Eu gostaria de ver o texto assim que o processo o gerar; de acordo comA saída padrão do processo não pode ser capturada? (primeiro comentário) Preciso esperar até que um buffer de 2 a 4 kb seja preenchido antes que o evento seja disparado.

Conforme solicitado, este é o código:

void pcs_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
{
    if (!string.IsNullOrEmpty(e.Data)) 
        textBox1.BeginInvoke((Action)delegate { textBox1.AppendText(text + "\n"); });
}

private void LER_Go_Click(object sender, EventArgs e)
{
    // variables LiDARExtRep contains the full path to an executable file
    // that runs in DOS and produces verbose output.
    // LER_Path.Text is the parameter passed to LiDARExtRep (only one arg for this example)
    ProcessStartInfo pStartInfo = new ProcessStartInfo(LiDARExtRep, LER_Path.Text);    
    pStartInfo.UseShellExecute = false;
    pStartInfo.ErrorDialog = false;
    pStartInfo.RedirectStandardError = true;
    pStartInfo.RedirectStandardInput = true;
    pStartInfo.RedirectStandardOutput = true;
    pStartInfo.CreateNoWindow = true;

    System.Diagnostics.Process pcs = new System.Diagnostics.Process();
    pcs.StartInfo = pStartInfo;

    bool pStarted = pcs.Start();

    pcs.OutputDataReceived += new DataReceivedEventHandler(pcs_OutputDataReceived);

    pcs.BeginOutputReadLine();
    pcs.WaitForExit();
}

Não vejo nada de especial nisso, é exatamente o mesmo dos exemplos que referenciei ... um simples"Dir","/b/s" no construtor deve produzir os mesmos resultados.

Existe uma maneira de diminuir o buffer para alguns bytes ou uma maneira melhor de executar uma ferramenta de linha de comando e receber a saída em tempo real?

Histórico: escrevi vários programas de linha de comando em C ++, que funcionamótimo, mas a geração mais jovem parece ter medo do DOS, então estou criando um formulário (GUI) para coletar os parâmetros dessas ferramentas, pois parece umamuitos menos trabalho do que tentar colocar uma GUI em cada programa em C ++. Se não conseguir respostas em tempo real, terei queUseShellExecute = true; e mostre a janela de comando.

questionAnswers(1)

yourAnswerToTheQuestion