Wie tötet man einen Prozess, ohne dabei einen "Prozess wurde beendet" Ausnahme?

Benutze ich Process.Kill() auf Prozess beenden. Wie diese:

if( !process.WaitForExit( 5000 ) ) {
   process.Kill();
}

und manchmal der Prozess der Ausfahrt rechts in zwischen den Zeilen, so die Kontrolle wird in if und dann Kill wird der Ertrag einer Ausnahme:

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

Nun umwickeln Sie den code in try-catch nicht zu sein scheinen eine gute Idee, weil InvalidOperationException können aufgerufen werden, aus anderen Gründen.

Gibt es einen Weg, um zu töten einen Prozess, ohne eine Ausnahme in dem beschriebenen Szenario?

  • Haben Sie versucht die Kontrolle der inneren Ausnahme? Vielleicht geben Sie die genaue exception zu behandeln.
  • Yeap, innere Ausnahme ist null zu allen Zeiten.
InformationsquelleAutor sharptooth | 2012-11-26
Schreibe einen Kommentar