【问题标题】:wxTimerEvent does not always call at the expected intervalwxTimerEvent 并不总是以预期的时间间隔调用
【发布时间】:2015-12-05 13:40:58
【问题描述】:

我正在使用wxTimerEvent() 以特定频率调用函数。但它并不总是按预期调用该函数。

例如,它可以在随机的时间段内正常工作,然后它在几秒钟内根本不调用该函数。 S这是我的代码块。请帮我解决这个问题...

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. 
}

【问题讨论】:

    标签: events delay wxwidgets


    【解决方案1】:

    定时器不能保证完全按照指定的时间间隔触发,但是 100 毫秒的定时器在几秒钟内不被调用是不正常的。我怀疑您的代码不会返回事件循环,从而阻止它分派计时器事件。如果您确定不是这种情况,您确实需要生成一个重现问题的示例(最好是对 wxWidgets minimal 示例的最小可能更改)并打开一个关于它的错误报告(请务必提及您的wxWidgets 版本和平台,如果你这样做)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多