Dans mon programme C#, j'appelle un programme externe à partir de la ligne de commande en utilisant un processus et en redirigeant l'entrée standard. Après que j'émette la commande au programme externe, toutes les 3 secondes je dois émettre une autre commande pour vérifier l'état - le programme répondra avec InProgress ou fini. Je voudrais de l'aide pour le faire aussi efficace que possible. Le processus vérifie l'état d'une opération longue exécutée par un service Windows (pour des raisons que je ne voudrais pas détailler, je ne peux pas interagir directement avec le service), donc le processus sort après chaque commande, mais le code de sortie est toujours le même le résultat.Vérification périodique de la sortie de la ligne de commande en C#
Répondre
utilisation et la propriété événement Process.Exited Process.ExitCode
Pour exemples:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode.aspx
Le code de sortie est toujours le même. – kjv
Je suppose que l'OP voulait un moyen de déterminer si le processus est terminé. C'est pourquoi ils utilisent un autre processus. Je suppose que la façon d'aller ici est d'utiliser l'événement sortant du processus – Midhat
@iulianchira Alors vous avez probablement juste besoin de l'événement sorti – Midhat
Vous pouvez utiliser un Timer pour exécuter un code à un intervalle spécifié, et Process.StandardOutput pour lire la sortie du processus:
Timer timer = new Timer(_ =>
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "foobar.exe";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
switch (output)
{
case "InProgress":
// ...
break;
case "Finished":
// ...
break;
}
});
timer.Change(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(3));
-1 pour TEH. j/k –
- 1. Sortie PHP vers la ligne de commande
- 2. capturant la sortie de la ligne de commande dans ncurses
- 3. Redirection de la sortie vers un argument de ligne de commande d'une autre commande dans Windows
- 4. Commande Shell - condition basée sur la sortie de la commande?
- 5. Sortie Unicode sur la ligne de commande Windows?
- 6. Vérification de la connexion Internet avec la ligne de commande PHP sur Linux
- 7. Sortie vers la ligne de commande si elle est démarrée à partir de la ligne de commande
- 8. Argument de ligne de commande en C
- 9. obtenir la sortie de commande pour analyser dans c/MacOSX
- 10. Sortie dans le fichier et la ligne de commande
- 11. Mise en ligne de la ligne de commande Yii
- 12. Puzzling sortie de la commande de temps
- 13. Statut de sortie de la commande ping
- 14. Arguments de la ligne de commande WinMain
- 15. Filehandle pour la sortie de la commande système en Perl
- 16. Comparaison d'arguments en ligne de commande C++
- 17. Vérification de l'état de l'icône de connectivité Internet via la ligne de commande
- 18. C# paramètres du programme de la ligne de commande?
- 19. Strip Newline Caractère de la sortie de la ligne de commande dans Ant
- 20. Analyseur de ligne de commande C# compatible avec la GPL
- 21. Vérification de la chaîne palindrome dans c
- 22. Vérification de l'installation de .NET à partir de la ligne de commande
- 23. sortie de texte de l'outil de ligne de commande
- 24. Accéder aux arguments de la ligne de commande dans C
- 25. svn histoire via la ligne de commande
- 26. Python exécuter la ligne de commande (heure)
- 27. analysant la sortie de commande Linux « qui » en PHP
- 28. Préservation de la couleur lors de la redirection de la sortie stdout et stderror en C#
- 29. L'exécution de la commande système en PHP diffère en utilisant le navigateur et en utilisant la ligne de commande
- 30. ligne de commande 'FOR'
Alors, demandez-vous comment émettre périodiquement la commande, ou comment obtenir l'entrée à partir de la ligne de commande? –