线程错误:无效使用非静态成员函数

雅各布

我试图理解C ++中的线程,但不知道如何解决此问题。

我想调用两个线程来运行名为“ createS”的函数,但出现此错误:

错误:无效使用非静态成员函数

我已经阅读了有关此主题的其他问题,但是我真的不明白如何使我的代码正常工作。

有人可以向我解释我做错了什么,并尝试帮助我找到解决方案吗?

test_class.cpp

void test_class::generateS(){

     map1=new multimap<double,vector<int>>;
     map2=new multimap<double,vector<int>>;

     thread thread_1( createS, 0, nCells/2, map1 ); 
     thread thread_2( createS, nCells/2, nCells, map2);

     thread_1.join();
     thread_2.join();
}

void test_class::createS(int startP, int endP, Costs *mapPointer){
     //i do some stuff
}

test_class.h

void createS(int start, int end, Costs *mapPointer);
void generateS();
 thread thread_1(&test_class::createS, this, 0, nCells/2, map1); 
 thread thread_2(&test_class::createS, this, nCells/2, nCells, map2);

注意:如果createS不依赖于对象状态,则最好使其成为static类成员,并按照您的方式进行调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

非静态成员函数c++线程linux的无效使用

Linux-信号:错误:无效使用非静态成员函数

错误:非静态成员函数 C++ 的无效使用

错误:在 C++ 中无效使用非静态成员函数

无效使用非静态成员函数

无效使用非静态成员函数C ++

错误:无效使用非静态成员

在头文件中无效使用非静态成员函数

C ++ freeRTOS任务,无效使用非静态成员函数

pthread_create-无效使用非静态成员函数

boost :: thread无效使用非静态成员函数

Arduino错误(C ++):无效使用非静态数据成员

将成员函数作为函数变量传递时,无效使用非静态成员函数C ++

无效使用非静态成员函数-类成员函数调用另一个类成员函数

C ++无效使用非静态数据成员

如何修复C ++中的“错误:无效使用非静态数据成员'tree :: root'”错误?

如何设置 (*sa_handler)(int) 指向作为类成员的函数的指针?(非静态成员函数的无效使用)

将ino sketch转换为C ++类,无效使用非静态成员函数

CC_SYNTHESIZE(int,beadColor,_BeadColor); 在非静态成员函数外部无效使用“ this”

非静态成员函数 int test::funcAB(int, int) 的无效使用

模板朋友功能C ++无效使用非静态数据成员错误

C++ [错误] 无效使用非静态数据成员 'Tree::root'

无效使用非静态数据成员'Board :: N'

无效使用非静态数据成员进行矩阵构建

c ++ 17 错误消息:在向量上使用宏时“必须调用对非静态成员函数的引用”

错误:必须调用对非静态成员函数的引用(2)

奇怪的“必须调用非静态成员函数的引用”错误

C ++错误:必须调用对非静态成员函数的引用

必须调用非静态成员函数的引用错误