我需要在课堂上创建新的主题并使用它。 有些想法:
class Somethink
{
public:
func_to_be_thread();
init_func();
}
Somethink::init_func()
{
std::thread newThread(func_to_be_thread);
}
int main()
{
Somethink ss;
ss.init_func();
}
编辑: 如何正确使用?我写的Everythink返回错误因为idk如何在类中使用参数(运行函数)类方法创建新线程。我的问题是如何正确地做到这一点?
答案 0 :(得分:2)
如果您需要使用成员函数创建一个线程,您可以执行以下操作:
class Something
{
public:
void func_to_be_thread();
void func_to_be_thread_advanced(const char* arg1);
std::thread init_func();
std::thread init_func_with_param(const char *arg1);
}
std::thread Something::init_func()
{
return std::thread(&Something::func_to_be_thread, this);
}
您也可以使用lambda和参数:
std::thread init_func_with_param(const char *arg1)
{
return std::thread([=] { func_to_be_thread_advanced(arg1); });
}
答案 1 :(得分:0)