c++ - 在另一个线程正在运行的情况下退出应用程序时出错

标签 c++ multithreading c++11

我有这样的代码:

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/

相关文章:

java - 线程中的阻塞方法

python - 使用 KeyboardInterrupt 关闭多线程应用程序

c++ - 如何从作为模式给出的 std::string 中提取单词?

c++ - 警告 : definition of implicit copy constructor is deprecated

c++ - SCDynamicStoreContext 的函数指针字段有什么用?

c++ - 有没有办法设计两个私下操作彼此数据的类?

c++ - 通过unique_ptr或通过值传递对象以及如何实现

c++ - 将 QLineEdit 的属性添加到 Qt 中的 QTable Widget

java - 可以重新安排被阻塞的线程来做其他工作吗?

c++ - 为什么我们在 C++11 中使用 initializer_list?