Poco 计时器与来自相同 class 的回调
Poco Timer with callback from same class
我有一个简单的 class,它使用 Poco 定时器:
MyClass::MyClass(){
Timer timer(250,5000);
TimerCallback<MyClass> callback(*this, &MyClass::onTimer);
timer.start(callback);
}
MyClass::onTimer(){
cout <<"Tick"<<endl;
}
很明显,回调初始化的代码是错误的。从与 TimerCallback 相同的 class (this) 中调用函数的正确方法是什么?
您可以使用 Timer
作为 MyClass
的成员:
MyClass {
//...
Timer timer;
};
然后在初始化列表中构造timer
对象以在Timer
的ctor中设置间隔
MyClass::MyClass() : timer(250,5000) { // <--
TimerCallback<MyClass> callback(*this, &MyClass::onTimer);
timer.start(callback);
}
或使用setPeriodicInterval
和setStartInterval
MyClass::MyClass() {
timer.setStartInterval(500);
timer.setPeriodicInterval(2500);
TimerCallback<MyClass> callback(*this, &MyClass::onTimer);
timer.start(callback);
}
我有一个简单的 class,它使用 Poco 定时器:
MyClass::MyClass(){
Timer timer(250,5000);
TimerCallback<MyClass> callback(*this, &MyClass::onTimer);
timer.start(callback);
}
MyClass::onTimer(){
cout <<"Tick"<<endl;
}
很明显,回调初始化的代码是错误的。从与 TimerCallback 相同的 class (this) 中调用函数的正确方法是什么?
您可以使用 Timer
作为 MyClass
的成员:
MyClass {
//...
Timer timer;
};
然后在初始化列表中构造timer
对象以在Timer
MyClass::MyClass() : timer(250,5000) { // <--
TimerCallback<MyClass> callback(*this, &MyClass::onTimer);
timer.start(callback);
}
或使用setPeriodicInterval
和setStartInterval
MyClass::MyClass() {
timer.setStartInterval(500);
timer.setPeriodicInterval(2500);
TimerCallback<MyClass> callback(*this, &MyClass::onTimer);
timer.start(callback);
}