Вот ситуация: мне нужно создать программу, которая будет вводить поток вывода другого процесса в текстовое поле.Само по себе это не вызовет особых проблем.Что, однако, является тем фактом, что мне нужно запустить 5 экземпляров этого консольного приложения и перенаправить вывод в 5 текстовых полей, а также иметь возможность убить любой из этих процессов в любое время.Насколько я понял, лучший способ сделать это - асинхронно.Но проблема здесь в процессах уничтожения, которые созданы в другом потоке.Как я могу убить его, не имея доступа к нему, поскольку он не существует в области, где я должен убить его.Мое лучшее предположение - получить его PID на Process.Start()
, чтобы я мог его убить, так что ...
Возможно ли запустить любое событие из процесса по команде Process.kill()
?А если нет - есть ли способ убить процесс примерно в тот же промежуток времени, что и Process.Kill()
, который запускает какое-то событие?
Или, может быть, кто-то мог бы предложить мне другие подходы или лучшие практики о том, какэти проблемы обычно решаются?
РЕДАКТИРОВАТЬ: причина, по которой я запускаю все процессы в разных потоках, заключается в том, что я использую Thread.Sleep()
для некоторых из них, если есть и входной параметр, который говорит мне, что процесс должен быть завершен через x секунд.