Я сделал консольное приложение, которое принимает команды из двух источников:
- Фактическая консоль -> это цикл while(getLine()) в отдельном потоке.
- Сервер веб-сокета -> это также работает в отдельном потоке
Если есть введенная команда, команда сохраняется в векторе до тех пор, пока другой цикл while (который выполняется каждые 20 мс) не будет проходить через все команды, введенные за прошедшее время. Если он читает команду, он ее выполняет.
Теперь есть команда Stop, которая останавливает приложение. При входе приложение закрывается, как и ожидалось. Но проблема в том, что это занимает некоторое время, и вы все еще можете вводить текст из первого источника команды (getline()). Как только вы что-то набираете, последовательность выключения останавливается и ждет, пока вы не нажмете ввод.
Я завершаю первый поток (который содержит цикл getline) после запуска последовательности выключения. Но это не работает...
Любые идеи?
Заранее спасибо!