После запуска процесса периодически проверяйте, отправило ли оно вам сообщение.Если это так, назовите код, который вам нужен.
Как именно вы это сделаете, зависит от структуры остального кода.Например, если у вас уже есть таблица периодических событий, то это очень просто.Если у вас есть схема выбора типа «выбор», она снова очень проста.
Если у вас еще ничего из этого нет, напишите функцию «CheckIfTheresAnythingToDo».Имейте логический флаг, который указывает, запущен ли у вас дочерний процесс.В 'CheckIfThereAnythingToDo' немедленно возвращайтесь, если флаг снят.Если он установлен, позвоните select
и посмотрите, было ли получено сообщение.Если это так, позвоните по коду, который вам нужен.(Я бы порекомендовал не использовать стандартный ввод / вывод, потому что он не очень хорошо сочетается с неблокирующей семантикой, когда вам нужно делать больше, чем одну вещь за раз.)
Затем просто позвоните CheckIfTheresAnythingToDo
включевые моменты в вашем коде.Если у вас есть какая-то структура цикла, вызывайте ее один раз на каждом проходе цикла.Если у вас есть код, который ожидает чего-то, попросите функцию ожидания вызвать его.
Но это тот тип вещей, который вы уже должны знать, как делать, когда начинали свой дизайн.«Мне нужно что-то проверять время от времени» - это очень типичное требование, и, если ваш общий дизайн не может его удовлетворить, вам следует переосмыслить этот проект.