Как заставить Process.Start () завершиться перед продолжением? - PullRequest
2 голосов
/ 05 марта 2011

Я создаю консольное приложение для обработки файла, а затем перемещаю его в «обработанную» папку. Приложение основной консоли вызывает другое приложение, используя Process.Start (). Это вторичное приложение на самом деле выполняет массовую вставку данных в базу данных. После завершения массовой вставки основное приложение переместит файл в другую папку, а затем перейдет к дополнительным задачам.

В основном приложении, как я могу предотвратить продолжение кода, пока вторичное приложение не завершится? Мне действительно нужно закончить первый процесс, прежде чем перейти к следующему шагу.

Спасибо!

Ответы [ 5 ]

7 голосов
/ 05 марта 2011

Используйте этот метод:

process.WaitForExit();
5 голосов
/ 05 марта 2011

Вы можете использовать WaitForExit () Метод

4 голосов
/ 05 марта 2011

Вы можете попробовать:

Process.Start(...).WaitForExit();

Предполагая, что вы используете ProcessStartInfo, вы могли бы написать это примерно так:

var psi = new ProcessStartInfo();
psi.FileName = "SecondProcess.exe";
psi.Arguments = "arg1 arg2";
var process = Process.Start(psi);
if(process != null) process.WaitForExit();
3 голосов
/ 05 марта 2011
2 голосов
/ 05 марта 2011

Вызов Process.WaitForExit () перед запуском следующей итерации.

...