Foundation > イベント > IlvTimer クラス
 
IlvTimer クラス
Rogue Wave® Views は、タイマーを実装する内部メカニズムを備えています。内部メカニズムは、隠れており、システムに依存しています。このメカニズムは、IlvTimer クラスをベースとしています。
タイマーは、指定した周期ごとに 1 度、関数を繰り返し呼び出すためのものです。このような形で関数を呼び出したい場合は、IlvTimer インスタンスを作成し、そのメンバー関数である run を呼び出します。タイマー・オブジェクトは、そのメンバー関数 doIt を周期が切れるたびに呼び出します。タイマーは、ディスプレイ・システムのタイムアウト・メカニズムに基づいています。
タイマーは、1 度のみ実行するように設定されている場合を除き、周期が終わるたびに doIt を自動的に繰り返し呼び出します。doIt を呼び出す前に、イベント・ループがタイマーを無効にします。doIt から返された後は、タイマーが 1 度だけ実行されるよう設定されておらず、さらに無効になっていると (タイマーのコールバック内から run を呼び出して有効にできます)、再び有効になります。このメカニズムにより、コールバックにローカル・イベント・ループが含まれている場合でも、タイマーはそのコールバック中はアクティブになりません。これはタイマーがイベント・ループによりトリガーされる場合のみで、アプリケーションが明示的に doIt メソッドを呼び出す場合は該当しません。アプリケーションは、それが作成したタイマーを削除する責任があります。
メモ: タイマーに呼び出された関数の実行が周期と比べて大幅に時間がかかる場合、その周期が適切でない場合があります。
IlvTimer クラスは、次の 2 つの場合に使用できます。
*最初のケースは、IlvTimerProc タイプに一致する必要のあるユーザー定義関数がある場合です。
typedef void (* IlvTimerProc)(IlvTimer* timer,IlAny userarg);
この場合は、IlvTimer オブジェクトをインスタンス生成し、この関数と使用する引数を指定するだけです。
*2 つ目のケースでは、メンバー関数 doIt をオーバーロードして、IlvTimer の派生サブクラスを使用します。

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.