2011-02-03 15 views
3

時間を完了した後(10秒と仮定)、コントロールが関数から出てくるようにタイマーを作成したいと思います。function内にタイマーを開始していますので注意してください。私はその関数に一定の時間制限を与えて、時間が終わった後に関数の関数が出てくるようにしたい。私は時間を計算したくない。自分の時間を与えて関数が完了するようにしたいその期間内のその実行... ..関数が入力を待っているときにも、制限時間を過ぎた後にも、 "時間が満了した"ことを示す制御が出てくるはずです。関数から出てきたら、次の関数関数の実行...これは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

これは問題があるようです。これはどんなプラットフォームですか? –

+0

libevをチェックしてください。 –

+0

sleep(numberOfSeconds)を使用できます。関数が別のスレッドにある場合 – Nav

答えて

1

コードが線形で、呼び出された関数を細かく分割することができない場合、タイムアウトを超えたときに外部のプロセス/スレッドにタイミングを与え、ワーカースレッドを中断させてしまう。あなたは小さな断片に労働者を切ることができた場合

あなたはこれが私達が頻繁に私達のembbededアプリケーションで使用するパターンであり、この

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

ような何かを行うことができます。タイムアウトクラスは社内で開発されました。ティックカウンターを読み取って時間が経過したかどうかを調べるだけです。 QTやMFCのようなフレームワークには、そのようなクラス自体が必要です。

+1

私は関数をチョップできません...複数threads..If誰もが複数のスレッドを使用する方法を助けることができます...私はこのC++には新しいです。だから、複数のスレッドの使用法について多くの考えを持っていません。 – kumar

関連する問題