В соответствии с Этот вопрос, я использую поток для завершения функции при вводе пользователя. Мой код выглядит примерно так:
bool stopper = false;
thread stopThread(userStop, &stopper); // start thread looking for user input
for(int i = 0; i < 1000; i++) {
if(stopper) { break; } // break if desired
// Do stuff
}
return 0;
где
userStop(bool *st) {
char chChar = getchar();
if(chChar == '\n') {
*st = true;
}
}
Когда я запускаю это, я получаю сообщение об ошибке terminate called without an active exception
. Исходя из этих вопросов: поток завершает вызов без активного исключения, С++ завершает вызов без активного исключения; это похоже на то, что я не "снова присоединяюсь к потоку".
Проблема в том, что я не хочу "присоединяться" к потоку, потому что тогда пользователю нужно, чтобы предоставить вход для userStop()
для завершения, но я хочу, чтобы пользователь только введите вход, если прерывание for-loop должно быть нарушено (что необязательно).
Спасибо!