【发布时间】:2021-08-16 06:58:42
【问题描述】:
我正在使用 Visual Studio C++ 编写代码。这是我写的示例。
我收到错误消息。有人可以指导我解决以下错误的建议
命名空间“std”没有成员“thread”
#include <iostream>
#include <cstring>
#include<thread>
#include<windows.h>
#include <vector>
#include <thread>
#include <iostream>
using namespace std;
class bar {
public:
void foo() {
std::cout << "hello from member function" << std::endl;
}
};
int main()
{
std::thread t(&bar::foo, bar());
t.join();
}
【问题讨论】:
-
请edit您的问题将full和complete构建输出复制粘贴到问题中。
-
永远,绝对永远不要包含
<windows.h>,除非您确切地知道自己在做什么。该标头正在用宏定义污染您的命名空间,这一切都搞砸了 -
清理代码后(如删除不必要和重复的标头包含)the code builds and runs fine
-
注意:在任何真正的程序中,在创建线程后立即
join是没有意义的。使用线程的全部意义在于让您的程序同时完成两件或多件事情。但是您的main()例程与线程t没有同时执行任何操作。通常你会 (1) 创建线程,(2) 暂时做些别的事情,然后 (3) 加入线程。
标签: c++ multithreading process