En utilisant le ProcessStartInfo
et Process
Je voudrais démarrer un programme (par exemple getdiff.exe) et ensuite lire toute la sortie que le programme produit. Plus tard, je vais utiliser les données d'une manière plus constructive mis en ce moment je veux juste imprimer les données pour s'assurer que cela fonctionne. Cependant, le programme ne se termine pas comme il se doit. Est-ce que quelqu'un se voit pourquoi? Merci d'avance.Le programme ne se termine pas lors de l'utilisation des processus
ProcessStartInfo psi = new ProcessStartInfo("getdiff.exe");
psi.Arguments = "DIFF";
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.WorkingDirectory = "c:\\test";
Process p = Process.Start(psi);
string read = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine(p);
Console.WriteLine("Complete");
p.Close();
Modification du programme à ce qu'il fonctionne correctement obtenu:
ProcessStartInfo psi = new ProcessStartInfo("getdiff.exe");
psi.Arguments = "DIFF";
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.WorkingDirectory = "c:\\test";
Process p = Process.Start(psi);
StreamReader read = p.StandardOutput;
while (read.Peek() >= 0)
Console.WriteLine(read.ReadLine());
Console.WriteLine("Complete");
p.WaitForExit();
p.Close();
Quelle partie de celui-ci ne soit pas fin à comme il se doit? Votre application ou le processus appelé? – Jaymz
Pourquoi devrait-il se terminer? Est-ce une application console? Autre chose? –
Ceci est une fonction dans un programme plus important. Mais lors de l'exécution de ce seul, le programme ne se termine jamais. Donc ce n'est pas sain. – Teletha