【发布时间】:2021-12-30 00:00:31
【问题描述】:
我可以这样做来开始我的话题:
int main_test() {
// do something...
return 0;
}
std::thread* myThread;
void myFunction() {
myThread = new std::thread(main_test);
}
如何将main_test 作为参数传递给myFunction,以便使用不同的目标函数可以使用相同的函数来启动线程?那么myFunction的签名会是什么呢?
我想我不明白的是,std::thread 构造函数的模板版本是如何使用指定类型调用的。
【问题讨论】:
-
您可以使用与
std::thread相同的代码来接受构造函数中的参数。我不明白你关于身份的问题,你是说类型吗? -
附带说明,在您的情况下,不需要使用 new 运算符进行动态分配。在堆栈上创建它,如
myThread = std::thread(main_test);。 -
@Ulrich Eckhardt 我认为他的身份是指函数的签名。
-
是签名,谢谢。现已修复
-
不过,你基本上可以从
std::thread复制代码。