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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top