#rust
Вопрос:
Я хочу иметь меню, в котором пользователь может вызывать функции и останавливать их по своему выбору. Я знаю, что один из способов сделать это-использовать subprocess::Popen
и убивать процессы с их pid, но я чувствую, что есть лучший способ сделать это. Следует отметить , что функции зацикливаются бесконечно ( loop { /* stuff */ }
), если только каким-то образом не остановятся.
Изменить: Изменен пример, предыдущий был не очень близок к тому, что я делаю:
(следует отметить, что я не собираюсь ничего делать с результатом выполнения функций)
fn main() {
fn lots_of_requests() -> Result<(), reqwest::Error> {
loop {
let _response = client.post("https://www.httpbin.org/post")
.body("stuff")
.send()?;
}
Ok(())
}
}
Комментарии:
1. вы ищете изящный выход из подпроцессов? Если да, являются ли они вашими собственными процессами?
2. Я бы предпочел, и да. Используя
Popen
метод, я бы открыл исполняемые файлы. Однако я бы предпочел использовать функции, определенные в исходном коде.3. не могли бы вы опубликовать простой пример с кодом?
4. Вы можете сделать это, создав
spawn
поток для своей функции и попросив функцию проверить флаг и выйти из цикла, если флаг установлен.5. Не могли бы вы привести мне пример?