Страницы

Поиск по вопросам

четверг, 1 ноября 2018 г.

Запуск процесса из потока

Подскажите, пожалуйста, как можно запустить процесс не блокируя основной поток, но и получить уведомление о завершении запущенного процесса?


Ответ

Необходимости в отдельном потоке нет.
Примерно так:
Process process = new Process(); process.StartInfo.FileName = "myprocess.exe"; //подписываемся на событие завершения процесса и включаем уведомления process.Exited += process_Exited; process.EnableRaisingEvents = true; //асинхронная операция, не блокирует поток, из которого была вызвана process.Start();
Где process_Exited — это ваш обработчик завершения процесса.
Если по каким-то причинам завершения процесса нужно дождаться синхронно, то после Start() нужно вызвать метод WaitForExit()

Комментариев нет:

Отправить комментарий