#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
Вынести запуск процесса и ожидания его завершения в отдельный тред?
Комментариев нет:
Отправить комментарий