我想要使用一个类的函数的std ::线程C++的std ::螺纹和方法类
后续的代码片段返回一个错误
MyClass *MyClass_ptr = new MyClass;
MyClass_ptr->MyFunction(); // Works
std::thread ThreadA(MyClass_ptr->MyFunction()); // Error here
std::thread ThreadB(MyClass_ptr->MyOtherFunction()); // Error here
我需要做一个线程与指向该类的特定指针:MyClass_ptr
那么,有没有办法使用该特定指针的那个类的方法?
如果它是有用的这里是与Microsoft Visual Studio 2013
#include "stdafx.h"
#include <iostream>
#include <thread>
class MyClass
{
public:
void MyFunction();
void MyOtherFunction();
};
void MyClass::MyOtherFunction()
{
std::cout << "Inside MyOtherFunction" << std::endl;
std::cin.get();
}
void MyClass::MyFunction()
{
std::cout << "Inside MyFunction" << std::endl;
std::cin.get();
}
int _tmain(int argc, _TCHAR* argv[])
{
MyClass *MyClass_ptr = new MyClass;
MyClass_ptr->MyFunction(); // Works
std::thread ThreadA(MyClass_ptr->MyFunction()); // Error here
std::thread ThreadB(MyClass_ptr->MyOtherFunction()); // Error here
delete MyClass_ptr;
MyClass_ptr = nullptr;
return 0;
}
您不需要使用绑定。 – 2014-09-02 22:20:22
Thx很大程度上代码 – Michele 2014-09-02 22:21:42
确定uop决定传入参数 – Rajeshwar 2014-09-02 22:22:13