我有这样的代码:
int main(){
thread loop2(loop2);
while(running){
}
}
void loop2(){
while(something){
}
}
当running
变为false
时,程序应该退出。但是我从 VS 收到错误消息:-abort() 已被调用。
我知道发生这种情况是因为第二个线程仍在运行。我试图用 ~thread()
终止线程,但没有成功。
最佳答案
替换
while(running){
}
通过
loop2.join()
它将一直等到线程终止。
关于c++ - 在另一个线程正在运行的情况下退出应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027472/