Bonjour,

J'ai un soucie avec la lecture de la sortie standard d'un process.
Voici comment je lance le process :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
  myProcess.StartInfo.FileName = app;
            myProcess.StartInfo.Arguments = "--interactive";
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.RedirectStandardInput = true;
            myProcess.StartInfo.RedirectStandardOutput = true;
 
            myProcess.Start();
            myStreamWriter = myProcess.StandardInput;
            myStreamReader = myProcess.StandardOutput;
Ensuite , je souhaite envoyer des commandes et récupérer les réponses. Pour ça, j'utilise ReadAsync() :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
                using (myStreamReader)
                {
                    await myStreamReader.ReadAsync(result, 0, 500);
                }

Ça fonctionne bien, mais qu'une fois. En sortant de ReadAsync, le stream est fermé, myStreamReader.BaseStream est null.


Or je veux envoyer d'autre commandes et boucler sur ReadAsync pour récupérer les réponses.

Quelle est la méthode ?


En vous remerciant,

Pendloup