问题出在哪里?
void MyClass::task(void *pvParameter){
while(1){
this->update();
}
}
void MyClass::startTask(){
xTaskCreate(this->task, "Task", 2048, NULL, 5, NULL);
}
但我得到了这个:
错误:无效的非静态成员函数使用
我找不到任何有用的文档来检查错误在哪里,
但我认为应该类似于 (C++11 的 std::thread) 例如:
xTaskCreate(&MyClass::task, "Task", 2048, (void*)this, 5, NULL);
对我有效的解决方案:
void MyClass::task(){
while(1){
this->update();
}
}
static void MyClass::startTaskImpl(void* _this){
static_cast<MyClass*>(_this)->task();
}
void MyClass::startTask(){
xTaskCreate(this->startTaskImpl, "Task", 2048, this, 5, NULL);
}
task
是非静态成员函数,那么this->task
是无效的。 - user253751