Я сделал консольные приложения, который принимает команду из двух источников:Прерывание GetLine() во время цикла в C++
- Фактическая консоль -> это в то время (GetLine()) цикл в отдельном потоке.
- сервер WebSocket -> это также работает на отдельном потоке
Если команда введена, команда сохраняется в векторе, пока другой цикл в то время (который ходит каждые 20 мс) не петли корыто все команды введенное за прошедшее время. Если он читает команду, он выполняет ее.
Теперь существует команда Stop, которая останавливает приложение. При вводе приложение закрывается, как ожидалось. Но проблема в том, что это занимает некоторое время, и вы все равно можете вводить текст из первого источника команд (getline()). Как только вы напечатаете что-то, последовательность выключения останавливается и ждет, пока вы не нажмете enter.
Я завершаю первый поток (содержащий цикл getline) после запуска последовательности останова. Но это не работает ...
Любые идеи?
Заранее благодарен!
Я не могу этого сделать, потому что эта нить не знает, и когда он получит это сообщение, уже слишком поздно ... – Antony
Я не могу загрузить код из 50 классов и заголовков. Я попытался объяснить структуру как можно лучше. Мой код не нужен, мне просто нужен способ отменить действие getline(), которое зацикливается через некоторое время. Если вы действительно думаете, что код нужен, я постараюсь опубликовать соответствующие фрагменты. – Antony