2015-05-04 3 views
1

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

Process proc = new Process(); 
proc.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + sFileName+".bat"; 
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
proc.Start(); 
Thread.Sleep(1000); 
// Method which will be executed after the batch file 
Method1(); 

Метод1() должен выполняться только в том случае, если пакетный файл завершил выполнение.

Может ли кто-нибудь помочь?

ответ

4

Вы можете просто позвонить

proc.WaitForExit(); 
Method1(); 

Инструктирует компонент процесса ждать заданное количество миллисекунд связанный с ним процесс выхода.

https://msdn.microsoft.com/en-us/library/ty0d8k56.aspx

Примечание нет необходимости для

Thread.Sleep(1000); 
5

Вы можете использовать этот метод:

proc.WaitForExit(); 

Вот docs

Смежные вопросы