Question

Si dans mon application C #, je suis en train de créer un processus enfant qui peut soit mettre fin à normalement, ou commencer mauvaise conduite, dans ce cas, je termine avec un appel à Process.Kill (). Cependant, je voudrais savoir si le le processus a quitté normally.I sais que je peux obtenir le code d'erreur d'un processus terminé, mais ce serait un code de sortie normale et ce qui signifie que le processus a été tué?

Était-ce utile?

La solution

Vous pouvez utiliser la ExitCode propriété, mais malheureusement, cela dépend de la façon dont l'application est construite. Donc, si vous avez le code source de l'application assurez-vous qu'il retourne correctement sur une bonne sortie. S'il vous plaît voir ce lien msdn décrivant ce plus en détail: http://msdn.microsoft.com/en- nous / bibliothèque / system.diagnostics.process.exitcode.aspx

Autres conseils

Le code source pour Process.Kill () dans le code indique le réglage de sortie à -1 (à partir de septembre 2012). Le système d'exploitation Windows utilise en fait des valeurs 32 bits non signés pour les codes de sortie, mais je crois que le signed-> unsigned-> traductions signées en C # doivent travailler (je ne dois vérifier zéro ou non nul de sorte qu'il n'a pas d'importance pour mon code).

D'autre part, ce comportement est évidemment non documentée (Pourquoi?) Si Microsoft pourrait changer demain et briser mon code en réglant le code de sortie à 0.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top