Codice di uscita di un processo terminato con Process.Kill (), in C #
-
20-09-2019 - |
Domanda
Se nel mio C #, sto creando un processo figlio che può o terminare normalmente, o avviare comportamento anomalo, nel qual caso mi terminarlo con una chiamata a Process.Kill (). Tuttavia, vorrei sapere se il processo è terminato normally.I so di poter ottenere il codice di errore di un processo terminato, ma quello che sarebbe un codice di uscita normale e ciò che avrebbero significare che il processo è stato ucciso?
Soluzione
È possibile utilizzare l'ExitCode proprietà, ma purtroppo questo dipende da come l'applicazione è costruita. Quindi, se avete il codice sorgente per l'applicazione accertarsi che restituisce correttamente su di una buona uscita. Si prega di consultare questo link per MSDN descrivere questo più in dettaglio: http://msdn.microsoft.com/en- us / library / system.diagnostics.process.exitcode.aspx
Altri suggerimenti
Il codice sorgente per Process.Kill () in sfilate di impostazione del codice di uscita a -1 (a partire da settembre 2012). Il sistema operativo Windows utilizza effettivamente a 32 bit valori senza segno per i codici di uscita ma credo che il signed-> unsigned-> traduzioni firmati in C # dovrebbe funzionare (ho solo bisogno di verificare la presenza di zero o non zero in modo che non importa per il mio codice).
D'altra parte, questo è ovviamente un comportamento non documentato (Perché?) Così Microsoft potrebbe cambiare domani e rompere il mio codice impostando il codice di uscita a 0.