wxTimerEvent并不总是以预期的间隔调用

时间:2015-09-09 14:17:29

标签: events delay wxwidgets

我正在使用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. 
}

1 个答案:

答案 0 :(得分:0)

定时器不能保证在指定的时间间隔内发射,但对于100ms定时器不能被调用几秒钟是不正常的。我怀疑你的代码没有返回到事件循环,阻止它调度计时器事件。如果您确定不是这种情况,那么您真的需要生成一个重现问题的示例(理想情况下对wxWidgets minimal示例的最小可能更改)并打开一个关于它的错误报告(请如果你这样做,一定要提到你的wxWidgets版本和平台。)