2014-01-29 98 views
0

我寫一個基於FLTK的GUI應用程序 - 內存的機器。C++ FLTK 1.3.2:跟上時代的屏幕,處理事件和非阻塞睡眠

,我想我的方法睡了,讓我們例如1秒每次執行命令後,保持畫面的最新和訪問,不要堵塞事件在同一時間處理等等。 問題是,我使用的每個函數都隨機休眠。

例如:

void FlowControl::_runProgram (void) { 

//Inside a loop: 

    _step(); //execute next order 
    clock_t start = timer.start(); //initialize clock 
    do{ 
     //wait max. 1-passed_time() [seconds] until 'something happens' 
     Fl::wait(1-timer.passed_time()); 

    }while (timer.passed_time() < 1); // check if 1 second has passed 

    //... 
} 

結果:GUI不阻擋,作品一切但是我有0之間,並等待甚至6(!!)秒而不是確切地用於下一步驟,一秒鐘。 ()/ Fl :: check()/ Fl :: ready()+ Sleep()/ SetTimer()/ clock_t/time_t(帶或不帶多線程)。

我該如何解決這個問題?

FLTK DOC: http://www.fltk.org/doc-1.3/index.html

回答