Синхронный Process.Start

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Синхронный Process.Start

Сообщение Williams » 06.07.2008 (Вс) 15:36

Как можно запустить процесс синхронно? Стандартно, метод Start() класса Process не блокирует выполнение программы до своего завершения. Класс также не имеет события вроде Started.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.07.2008 (Вс) 16:21

Интересно а метод WaitForExit() ты не заметил когда просматривал object browser?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 06.07.2008 (Вс) 17:18

ANDLL

Мне нужен не WaitForExit(), а WaitForStart, которого, к сожалению, не существует.



Вот смотри... Создается ProcessStartInfo экземпляр, указывается путь к исполняемому файлу, создается процесс с этой инфой, запускается процесс (Process.Start). На самом деле, путь к исполняемому файлу указан криво и это, в конечном итоге, приведет к Win32Exception. Но строчка, идущая следом за Process.Start выполняется еще до того, как Process.Start выполнился, а в данном случае даже убедился существует ли файл или нет.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 06.07.2008 (Вс) 18:13

Сам и ответил) значит имеешь ошибку, обрабатывай!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 06.07.2008 (Вс) 18:38

Sebas

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

Добавлено: Да, и к тому же мне нужно отобразить индикатор прогресса вида: "Launching process.." и скрыть его по завершении запуска. Обработка исключений в данном случае имеет 0% КПД.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.07.2008 (Вс) 21:36

Вот смотри... Создается ProcessStartInfo экземпляр, указывается путь к исполняемому файлу, создается процесс с этой инфой, запускается процесс (Process.Start). На самом деле, путь к исполняемому файлу указан криво и это, в конечном итоге, приведет к Win32Exception. Но строчка, идущая следом за Process.Start выполняется еще до того, как Process.Start выполнился, а в данном случае даже убедился существует ли файл или нет.
В таком контексте обсуждения Start выполняется синхронно, и если исполняемый файл не найден выдаст исключение.
И завершается метод start тогда, когда запуск завершен
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 06.07.2008 (Вс) 21:42

ANDLL

странно... у меня по-другому. Программа, которую запустил Start, даже остается запущенной, а последующие комманды выполняются сразу и подряд.

Хотя наверное ты прав - дело может быть в самом вызываемом процессе. Буду копать.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.07.2008 (Вс) 22:17

даже остается запущенной
Еще бы, а не должна?
последующие комманды выполняются сразу и подряд
А что, должны выполняться после дождичка в четверг да еще и в случайном порядке?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 06.07.2008 (Вс) 23:12

ANDLL

Не в этом дело. В картине не доставало некоторых деталей. Ну да ладно, сам как-нибудь разберусь.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList