Страницы

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

пятница, 20 декабря 2019 г.

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

#c_sharp #многопоточность


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


Ответы

Ответ 1



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

Ответ 2



Вынести запуск процесса и ожидания его завершения в отдельный тред?

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

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