我正在使用wxTimerEvent()
以特定频率调用函数。但它并不总是按预期调用函数。
例如,它在随机持续时间内工作正常,然后它几秒钟内根本不调用该函数。 SHere是我的代码块。请帮我弄清楚这个问题...
class MyFrame : public wxFrame
{
public:
...
void OnTimer(wxTimerEvent& event);
private:
wxTimer *mTimer
wxDECLARE_EVENT_TABLE();
};
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_TIMER(TIMER_ID, MyFrame::OnTimer)
wxEND_EVENT_TABLE()
MyFrame::MyFrame()
{
mTimer = new wxTimer(this, TIMER_ID)
m_timer.Start(100); // 100 millisecond interval
}
void MyFrame::OnTimer(wxTimerEvent& event)
{
// my logic -this is working fine... just set a flag.
}
答案 0 :(得分:0)
定时器不能保证在指定的时间间隔内发射,但对于100ms定时器不能被调用几秒钟是不正常的。我怀疑你的代码没有返回到事件循环,阻止它调度计时器事件。如果您确定不是这种情况,那么您真的需要生成一个重现问题的示例(理想情况下对wxWidgets minimal
示例的最小可能更改)并打开一个关于它的错误报告(请如果你这样做,一定要提到你的wxWidgets版本和平台。)