möglicherweise die Umkehrung dieser Frage beendet hat: Process.HasExited returns true even though process is running?C#: Process.HasExited gibt false zurück, auch wenn der Prozess
Ich töte() auf einen Prozess namens und es scheint verlassen zu haben. Aber wenn ich HasExited teste, bekomme ich falsch:
myProcess.Kill();
while (!myProcess.HasExited)
{
Thread.Sleep(1000);
}
Und das geht unendlich weiter. Zugegeben, ich muss diesen Code ändern, um schließlich zu warten, aber ich bin neugierig, warum HasExited immer noch false zurückgibt, wenn der Prozess sozusagen von der Karte abgefallen ist.
Das ist richtig, ich habe die Standardausgabe umleiten. Ich entschied mich dafür, Kill und WaitForExit (1000) in eine Wiederholungsdreieckschleife zu setzen. Ich kann es mir nicht leisten, ewig zu warten, wie der MSDN-Artikel vermuten lässt. – Jeremy
Ich frage mich auch, ob dies bedeutet, dass es für einen Prozess möglich ist, zu beenden und immer noch seine Standard-Ausgabeströme offen zu haben. Oder bedeutet der Artikel, dass mein lokaler Streamreader die Nachricht nicht geschlossen hat, obwohl der Quellprozess beendet wurde? – Jeremy