• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Взаимодействие процессов

  • Автор темы Dimka197
  • Дата начала
D

Dimka197

Нужно написать задачу, в которой дано 10 процессов (там P1, P2, …, Р10, например) Функционирование и взаимодействие процессов следующее:
• P1 (запускается пользователем): Запустить процессы P2, Р3, …, Р10. Далее, процесс Р1 следит за количеством подчинённых процессов (т.е. сколько из Р2 – Р10 работают), если какой-то процесс завершается, то Р1 тут же запускает его заново. Иначе говоря, в системе должно постоянно работать 10 процессов.
• P2, Р3, …, Р10 (запускаются процессом P1): каждый процесс выводит на экран время собственного старта, после чего генерирует случайное чисто от 2 до 10 (назовём его Т), выводит Т на экран и засыпает на Т секунд. После этого процесс завершается.

как это сделать? подскажите
 
L

LuMee

Можно сделать так: пусть управляющий процесс (Р1 в условии задачи) создаст 9 потоков; каждый из этих потоков в цикле пусть запускает "свой" процесс Р2-Р10.
Тело рабочего метода потока будет выглядеть примерно так:
Код:
while (true) // сюда лучше вставить какое-то условие для останова
{
var process = Process.Start("lalala.exe");
process.WaitForExit();	
}
После запуска этих потоков управляющему процессу остается только ждать, скажем, некоторого ввода от пользователя, который бы обозначал команду выхода. При получении этого ввода управляющий процесс стопорит потоки, приложение завершает работу.
 
D

Dimka197

А можно пополнее код? а то я по этой теме вообще мало чего понимаю, увы:facepalm:

Спасибо заранее за помощь
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!