可以使用std::bind()函数将类成员函数转换为普通函数,然后将其作为线程函数 。下面是一个简单的例子:
#include <iostream>
#include <thread>
class MyClass
{
public:
void threadFunc(int x, int y)
{
std::cout << "x + y = " << x + y << std::endl;
}
};
int main()
{
MyClass obj;
std::thread t(std::bind(&MyClass::threadFunc, &obj, 1, 2));
t.join();
return 0;
}
这个程序创建了一个新线程并执行了MyClass::threadFunc()函数,同时传入了两个参数1和2。在主线程中,我们使用t.join()等待新线程完成 。