Monitoramento de saída de comando em tempo real do SSH.NET

Existe um script de longa duraçãoscript.sh em uma máquina Linux remota. Preciso iniciá-lo e monitorar sua atividade em tempo real. O script durante sua atividade pode gerar saída parastdout estderr. Estou procurando uma maneira de capturar os dois fluxos.

Eu uso o Renci SSH.NET para fazer uploadscript.sh e inicie-o, por isso seria ótimo ver uma solução vinculada a esta biblioteca. Na minha opinião, a solução perfeita é o novo método:

var realTimeScreen= ...;

var commandExecutionStatus = sshClient.RunCommandAsync(
    command: './script.sh',
    stdoutEventHandler: stdoutString => realTimeScreen.UpdateStdout(stdString)
    stderrEventHandler: stderrString => realTimeScreen.UpdateStderr(stderrString));
...
commandExecutionStatus.ContinueWith(monitoringTask =>
{
    if (monitoringTask.Completed)
    {
        realTimeScreen.Finish();
    }
});

questionAnswers(2)

yourAnswerToTheQuestion