我有这样的代码:错误而退出应用程序与其它线程中运行
int main(){
thread loop2(loop2);
while(running){
}
}
void loop2(){
while(something){
}
}
当running
转向false
,程序应该退出。但我收到来自VS的错误:-abort() has been called.
我知道发生这种情况是因为第二个线程仍在运行。我试图用~thread()
终止线程,但它没有工作。
这段代码没有将'running'设置为false。事实上,你的程序展示了UB,因为你的线程不需要I/O或者自己终止。 –
@LightnessRacesinOrbit设置*什么*为false?我没有看到有关'running'的声明。 – Casey