2015-09-09 11 views
-1

我正在使用wxTimerEvent()以特定頻率調用某個函數。但它並不總是按預期調用函數。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

定時器,不能保證消防準確地在指定的時間間隔,但不叫幾秒鐘100ms的計時器是不正常的。我懷疑你的代碼不會返回到事件循環,從而阻止它分派計時器事件。如果您確定不是這種情況,那麼您真的需要生成一個重現問題的示例(理想情況下,對wxWidgets minimal示例的最小可能更改)並打開一個關於它的錯誤報告(請務必提及您的wxWidgets版本和平臺,如果你這樣做)。