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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top