Process.WaitForExit не ждет - PullRequest
       1

Process.WaitForExit не ждет

2 голосов
/ 11 февраля 2011

У меня есть следующий код, и метод WaitForExit не ждет.Он просто запускает команду и переходит к следующему оператору.Команда должна удалить приложение, а пармы - для команды удаления.Деинсталляция работает нормально, но мне нужно завершить деинсталляцию перед тем, как двигаться дальше ... она не блокируется.

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = commandName;
startInfo.Arguments = parms;
Process process = Process.Start(startInfo);
process.WaitForExit();

1 Ответ

7 голосов
/ 11 февраля 2011

Я сильно подозреваю, что комментарий Андрея верен - процесс, который вы запускаете , завершается, но сам запустил новый процесс.

Простой способ выяснить это - распечатать process.Id перед вызовом WaitForExit, а затем попытаться найти этот процесс в диспетчере задач. Я подозреваю, что вы найдете, что его там не будет.

Возможно, вы захотите зациклиться, поспав коротко, ожидая, пока другой индикатор завершит удаление - например, удалится конкретный файл или запись в реестре. Не идеально, но это может быть лучшее, что у тебя есть.

...