Io uso Process.Kill()
per terminare un processo. Come questo:Come uccidere un processo senza ottenere un'eccezione di "processo terminato"?
if(!process.WaitForExit(5000)) {
process.Kill();
}
e, talvolta, il processo uscirà proprio tra le righe, quindi il controllo otterrà all'interno if
e poi Kill
produrrà un'eccezione:
System.InvalidOperationException
Cannot process request because the process (ProcessIdHere) has exited.
at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)
at System.Diagnostics.Process.Kill()
//my code here
Ora avvolgendo il codice in try- catch non sembra essere una buona idea perché InvalidOperationException
può essere chiamato per altri motivi.
C'è un modo per terminare un processo senza ottenere un'eccezione nello scenario descritto?
Hai provato a verificare l'eccezione interna? Potrebbe darti un'eccezione esatta da gestire. – Yahya
@Yahya: Yeap, l'eccezione interna è nullo in ogni momento. – sharptooth