根据This Question,我正在使用线程来终止用户输入的函数。我的代码看起来像:
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
。基于这些问题:线程终止调用没有活动异常,C++终止调用没有活动异常;看起来像是因为我不再“加入”线程了。
问题是,我不想“加入”线程——因为这样用户将需要为终止提供输入userStop()
,但我只希望用户在 for 循环被破坏时提供输入(其中不一定)。
谢谢!