Ewentualnie odwrotność tego pytania: Process.HasExited returns true even though process is running?C#: Process.HasExited zwraca false mimo że proces został zakończony
Zadzwoniłem kill() na procesie i wydaje się, że odszedł. Ale kiedy testuję HasSxited, otrzymuję fałszywe:
myProcess.Kill();
while (!myProcess.HasExited)
{
Thread.Sleep(1000);
}
I to trwa przez czas nieokreślony. To prawda, muszę zmienić ten kod, aby w końcu przestać czekać, ale jestem ciekawy, dlaczego HasExited wciąż zwraca wartość false, gdy wydaje się, że proces został usunięty z mapy.
To prawda, ja przekierować standardowe wyjście. Zdecydowałem się jednak umieścić Kill i WaitForExit (1000) w pętli trzykrotnego powtórzenia. Nie mogę sobie pozwolić na ciągłe czekanie, jak sugeruje artykuł MSDN. – Jeremy
Zastanawiam się również, czy oznacza to, że możliwe jest zakończenie procesu i pozostawienie standardowych strumieni wyjściowych. Czy też ten artykuł oznacza, że mój lokalny program do przesyłania strumieniowego nie otrzymał wiadomości do zamknięcia pomimo zakończenia procesu źródłowego. – Jeremy