Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;线程错误?_C++_Multithreading_C++11 - Fatal编程技术网

C++ C++;线程错误?

C++ C++;线程错误?,c++,multithreading,c++11,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); whi

所以我对这个程序有一个问题,我只是想把它弄得乱七八糟。我以前从未遇到过这个问题。代码是:

#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();
    }
}
#包括
#包括
#包括
无效更新(){
系统(“cls”);

std::cout不清楚错误是什么,但生命周期显然是错误的。线程在循环之前创建过一次,但在循环中它会被重复地连接和分离。因此,循环的任何后续迭代都会对已经死掉的线程执行无效操作。可能您的意思是:

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

您遇到的问题是什么?程序的预期行为是什么?stackoverflow.com上的所有问题必须以纯文本形式包含问题本身的所有相关信息。指向外部网站的链接可能会随时停止工作,从而使问题变得毫无意义,这是不可接受的。我不确定,但我不确定相信一旦调用了
detach
,你就可以调用线程上的函数。多次调用
join
是安全的,但是一旦分离,你就不能用
线程做任何事情了。目的是不断地清除屏幕,发出“wow dud”,然后暂停。我在胡闹,这一小时我是随机的