2011-02-03 46 views
3

我想創建一個定時器,以便在完成時間(假設10秒)後控件應該從函數中出來..請注意,我正在啓動函數內的定時器。代碼如下所示。我想給該函數一定的時間限制,以便在完成時間後控制應該從函數中出來..我不想計算時間..我想給我自己的時間,以便函數應該完成它在該時間段內執行。如果函數正在等待輸入,那麼在完成時間限制後,控件應該出現,指示「時間已過期」。一旦它出來,它應該繼續下一個函數執行...這是可能的C++ ...C++定時器控件

Begin(); 

// here I would like to add timer. 

v_CallId = v_CallId1; 
call_setup_ind(); 
call_alert_ind(); 
dir_read_search_cnf(); 
dir_save_cnf(); 

END(); 
+0

這似乎有問題。這是什麼平臺? – 2011-02-03 06:07:33

+0

退房libev。 – 2011-02-03 06:12:57

回答

1

如果代碼是線性的,並且調用的函數不能被分割成小塊,那麼當超出超時時,您會堅持讓外部進程/線程執行計時並中止工作線程。

當你能砍工人成小塊,你可以做這樣的事情

Timeout.Start(5000); 
while ((TimeOut.TimeOut() == false) && (completed == false)) 
{ 
    completed = WorkToDo() 
} 

這是我們在embbeded應用經常使用的模式。超時課程正在內部開發。它只是讀取滴答計數器,看看時間是否已經過去。像QT或MFC這樣的框架本身應該有這樣的類。