要将一个类的指针发送给后台工作线程,可以使用以下方法:
#include
#include
class MyClass {
public:
void DoWork() {
// 在后台工作线程中执行的代码
std::cout << "Doing work in background thread" << std::endl;
}
};
void ThreadFunction(MyClass* obj) {
obj->DoWork();
}
int main() {
MyClass obj;
// 创建一个新的线程,并将类的指针作为参数传递给线程函数
std::thread worker(ThreadFunction, &obj);
// 等待线程执行完毕
worker.join();
return 0;
}
#include
#include
class MyClass {
public:
void DoWork() {
// 在后台工作线程中执行的代码
std::cout << "Doing work in background thread" << std::endl;
}
};
int main() {
MyClass obj;
// 创建一个新的线程,并使用Lambda表达式访问类的指针
std::thread worker([&obj]() {
obj.DoWork();
});
// 等待线程执行完毕
worker.join();
return 0;
}
无论选择哪种方法,都可以将类的指针发送给后台工作线程,并在后台线程中执行类的成员函数。