Bonjour,
J'ai un soucie avec la lecture de la sortie standard d'un process.
Voici comment je lance le process :
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
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;
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
Partager