Código de saída de um processo terminado com process.kill (), em c#
-
20-09-2019 - |
Pergunta
Se no meu aplicativo C#, estou criando um processo infantil que pode terminar normalmente ou começar a se comportar mal; nesse caso, eu o encerro com uma chamada para process.kill (). No entanto, gostaria de saber se o processo saiu Normalmente. Eu sei que posso obter o código de erro de um processo terminado, mas o que seria um código de saída normal e o que significaria que o processo foi morto?
Solução
Você pode usar a propriedade EXITCODE, mas, infelizmente, isso depende de como o aplicativo é criado. Portanto, se você tiver o código -fonte do aplicativo, verifique se ele retorna corretamente com uma boa saída. Consulte este link para o MSDN descrevendo isso mais em detalhes:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode.aspx
Outras dicas
O código -fonte do Process.Kill () mostra a definição do código de saída como -1 (a partir de setembro de 2012). O sistema operacional do Windows realmente usa valores não assinados de 32 bits para os códigos de saída, mas acredito que as traduções assinadas-> não assinadas em C# devem funcionar (eu só preciso verificar se há zero ou diferente de zero, para que não importa para que não meu código).
Por outro lado, esse é obviamente um comportamento sem documentos (por quê?) Então a Microsoft poderia alterá -lo amanhã e quebrar meu código definindo o código de saída para 0.