У нас есть приложение запуска, которое выполняет некоторую настройку (запуск сервера), запускает дочерний процесс, ожидает (через рабочий поток) выхода дочернего процесса, а затем выполняет некоторую очистку (останавливая сервер).Это уже установлено и работает нормально.
Однако некоторые из наших приложений могут запускать другие приложения.Так, например, программа запуска может запустить приложение A, а затем я могу нажать кнопку в приложении A, которая запускает приложение B. Затем я закрываю приложение A, вызов запуска Process.WaitForExit модуля запуска, и модуль запуска останавливает сервер - не подозревая, чтоПриложение B все еще работает.Мы используем средство запуска только для тестирования разработки, так что это не кризис, но это неудобно, когда приложение B пытается установить связь с сервером и вылетает.
Какой лучший способ запустить дочерний процесс, а затемподождать, пока он (и любой из его дочерних элементов) выйдет?
Эти приложения (как запускающие, так и запускаемые приложения) находятся в .NET.Это нормально, если мне нужно написать специальный код (например, открытие именованного семафора) в каждом приложении, чтобы сделать эту работу;Я просто не уверен, что это лучший способ сделать это.
Бонусные баллы, если есть какой-то способ только дождаться завершения моих приложений - например, если мое приложение запускает Блокнот,Я не хочу дождаться закрытия Блокнота;Я просто хочу дождаться приложений, которым нужен сервер.Но это не требование, а тонкость.