C ++线程错误?

时间:2017-02-09 02:20:56

标签: c++ multithreading c++11

所以我对这个程序有一个问题,我试图搞砸了。我之前从未遇到过这个问题。代码是:

#include <iostream>
#include <windows.h>
#include <thread>
void update(){
system("cls");
std::cout << "Wow dud";
system("pause >nul");
}

int main(){
std::thread wow(update);
while(true){
wow.join();
wow.detach();
    }
}

,错误是:well, error here

1 个答案:

答案 0 :(得分:-1)

不清楚错误是什么,但生命周期显然是错误的。线程在循环之前创建一次,但随后在循环中重复连接和分离。因此,循环的任何后续迭代都对已经死的线程执行无效操作。也许你的意思是:

  while(true){
      std::thread wow(update);
      wow.join();
      wow.detach();
  }