我一直在试图学习如何多线程,但我无法正确创建线程对象。我有一个名为task的函数,但是当我添加函数和参数时,它说构造函数不会接受它。顺便说一句,即时通讯使用Visual Studio作为我的IDE。不能使用线程构造函数
这里是我的主文件:
#include <iostream>
#include <thread>
#include "Task.h"
using namespace std;
int main(int argc, char** argv)
{
Task t;
thread t1(t.task, 1);
t1.join;
return 0;
}
类任务的对象:
#include "Task.h"
#include <iostream>
using namespace std;
Task::Task()
{
}
Task::~Task()
{
}
void Task::task(int x) {
cout << "In Thread " << x << '\n';
}
错误:
更新: 所以我把在thread t1(&Task::task, &t, 1);
和整肃t1.join
,但现在我有一个新问题。程序编译器和运行,但它运行时的权利,则显示“在线程1”在控制台上,而另一个窗口弹出,上面写着:
Debug Error!
abort() has been called
(Press retry to debug the application)
Visual Studio _what_?有很多版本。 –
't1.join'不会编译,你应该总是尝试发布你的真实代码,而不是当场输入。 –
我正在使用视觉工作室专业2015 –