TNB Library
クラス | 公開メンバ関数 | 全メンバ一覧
CTimerDispatch クラス

タイマー処理クラス [詳解]

#include <TnbTimerDispatch.h>

クラス

struct  IListener
 タイマー処理のリスナーインターフェース [詳解]
 

公開メンバ関数

 CTimerDispatch (void)
 コンストラクタ [詳解]
 
bool KillTimer (UINT_PTR uTimerId) const
 [設定] タイマー破棄 [詳解]
 
virtual bool OnTimer (UINT_PTR uTimerId, LPARAM lParam)
 [通知] タイマー発生. [詳解]
 
CThreadStatusReferThreadStatus (void)
 [参照] 処理スレッド状態参照. [詳解]
 
void SetListener (IListener *P)
 [登録] リスナー登録 [詳解]
 
UINT_PTR SetTimer (UINT uElapse, LPARAM lParam=0) const
 [設定] タイマーセット [詳解]
 
bool Start (LPCTSTR lpszName=NULL)
 [設定] スレッド開始 [詳解]
 
bool Stop (void)
 [設定] スレッド停止 [詳解]
 
virtual ~CTimerDispatch (void)
 デストラクタ [詳解]
 

詳解

タイマー処理クラス

指定の時間間隔ごとに処理をさせることが出来ます。
覚え書き
処理は、リスナーを実装したクラスを登録するか、本クラスを継承し OnTimer() をオーバーライドします。(推奨は前者)
リスナー内で SendMessage を使う場合、 ReferThreadStatus()関連ウィンドウを指定する 必要があります。 CThread::SetOwnerHwnd() を参照してください。
必要ファイル
TnbTimerDispatch.h
日付
06/08/03 新規作成
06/10/25 OnSetup() メソッド追加。
10/03/19 ReferThreadStatus() 追加。
19/06/10 OnSetup() メソッドが機能していなかったのを修正。

TnbTimerDispatch.h42 行目に定義があります。

構築子と解体子

◆ CTimerDispatch()

CTimerDispatch ( void  )

コンストラクタ

TnbTimerDispatch.h177 行目に定義があります。

◆ ~CTimerDispatch()

virtual ~CTimerDispatch ( void  )
virtual

デストラクタ

TnbTimerDispatch.h184 行目に定義があります。

関数詳解

◆ KillTimer()

bool KillTimer ( UINT_PTR  uTimerId) const

[設定] タイマー破棄

引数
uTimerIdタイマーID。 SetTimer() の戻り値を使います。
戻り値
true成功。(不正な タイマーIDを指定しても成功になります)
false失敗。( スレッドが動いていない)

TnbTimerDispatch.h252 行目に定義があります。

◆ OnTimer()

virtual bool OnTimer ( UINT_PTR  uTimerId,
LPARAM  lParam 
)
virtual

[通知] タイマー発生.

SetTimer() で指定した時間が経過するとコールされます。 KillTimer() するまで、 定期的にコールされます。

覚え書き
リスナーを登録しないと、タイマー発生時このメソッドがコールされます。 本クラスを継承し、本メソッドを継承することでも、処理が実装できます。 (リスナーを使用するほうを推奨します)
引数
uTimerIdタイマーID
lParamSetTimer() で指定した 任意の32BIT値
戻り値
true正常
false切断要求

TnbTimerDispatch.h282 行目に定義があります。

◆ ReferThreadStatus()

CThreadStatus & ReferThreadStatus ( void  )

[参照] 処理スレッド状態参照.

戻り値
スレッド状態の参照.

TnbTimerDispatch.h265 行目に定義があります。

◆ SetListener()

void SetListener ( IListener P)

[登録] リスナー登録

覚え書き
リスナーを登録しないと、タイマー発生時、本クラスの OnTimer() がコールされます。 (リスナーを使用するほうを推奨します)
引数
Pリスナー

TnbTimerDispatch.h195 行目に定義があります。

◆ SetTimer()

UINT_PTR SetTimer ( UINT  uElapse,
LPARAM  lParam = 0 
) const

[設定] タイマーセット

引数
uElapseタイムアウト値 (ミリ秒指定)
lParam任意の32BITの値。
戻り値
0失敗。
0以外成功。値はタイマーID。

TnbTimerDispatch.h231 行目に定義があります。

◆ Start()

bool Start ( LPCTSTR  lpszName = NULL)

[設定] スレッド開始

引数
lpszNameスレッドの名前(DEBUG以外では無視されます)
戻り値
true成功。
false失敗(スレッド起動失敗/既にスレッド実行中)

TnbTimerDispatch.h206 行目に定義があります。

◆ Stop()

bool Stop ( void  )

[設定] スレッド停止

戻り値
true成功(スレッドを開始していない時やTerminateした時も成功としています)
false失敗(リスナースレッド内で Stop() を使用すると失敗します)

TnbTimerDispatch.h219 行目に定義があります。