2014-03-25 181 views
0

我需要爲我的項目等待一段時間的代碼構造,但是當有中斷(例如傳入的udp數據包)時,它會離開此循環,執行某些操作,然後重新啓動等待。
我該如何實現?我的第一個想法是使用while(wait(2000)),但等待是一個無效的構造...
謝謝!等待中斷循環

回答

0

我會把循環函數內部

void awesomeFunction() { 
    bool loop = true; 

    while (loop) { 
     wait(2000); 
     ... 
     ... 
     if (conditionMet) 
      loop = false; 
    } 
} 

然後我會把這個功能的另一個循環

while (programRunning) { 
    awesomeFunction(); 

    /* Loop ended, do stuff... */ 
} 
+0

內,但後來我總是等待2000毫秒,然後我的病情會檢查。如果我的情況在1000到1500毫秒的時間內完成填寫,那麼您的循環將永遠不會退出... –

+0

那麼,再次閱讀您的問題讓我覺得您可以通過使用民意調查方式獲益更多。我不確定C++在這個問題上提供了什麼,但是c有一個叫做select的小函數:http://manpages.courier-mta.org/htmlman2/select.2.html –