TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CThread::IRunner 構造体abstract

スレッド実行管理ランナーインターフェース [詳解]

#include <TnbThread.h>

+ CThread::IRunner の継承関係図

公開メンバ関数

 IRunner (void)
 コンストラクタ [詳解]
 
bool IsRunnable (void) const
 [確認] 実行可能か否か [詳解]
 
virtual ~IRunner (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual void OnExitThread (void)
 [通知] スレッド終了通知. [詳解]
 
virtual void OnSetupThread (void)
 [通知] スレッド開始前通知. [詳解]
 
virtual DWORD Run (void)=0
 [動作] スレッド処理本体 [詳解]
 

詳解

スレッド実行管理ランナーインターフェース

本クラスを継承したものを CThread クラスに委譲することでスレッドを容易に、
実現できます。継承したクラスはスレッドで動かした処理を Run() に実装します。\n
Stop要求があると、 IsRunnable() の戻り値がfalseになります。
Run() 内では IsRunnable() をポーリングし 戻り値が false になった時、 Run() 処理を終了し、リターンする必要が有ります。
参照
CThread::CThread()
CThread::SetRunner()
必要ファイル
TnbThread.h
日付
06/04/01 新規作成
06/07/26 PostMessage() 追加。
08/10/09 OnStartThread() 追加。
09/09/11 サスペンド要求追加。 OnSetupThread() 追加。 OnStartThread() 廃止。
10/03/19 OnExitThread() 追加。

TnbThread.h340 行目に定義があります。

構築子と解体子

◆ ~IRunner()

virtual ~IRunner ( void  )
virtual

デストラクタ

TnbThread.h343 行目に定義があります。

◆ IRunner()

IRunner ( void  )

コンストラクタ

TnbThread.h346 行目に定義があります。

関数詳解

◆ IsRunnable()

bool IsRunnable ( void  ) const

[確認] 実行可能か否か

戻り値
true実行可能。
false実行停止要求。Run関数は直ちにReturnすること。

TnbThread.h355 行目に定義があります。

◆ OnExitThread()

virtual void OnExitThread ( void  )
protectedvirtual

[通知] スレッド終了通知.

スレッドが終了時、コールされます。

TnbThread.h386 行目に定義があります。

◆ OnSetupThread()

virtual void OnSetupThread ( void  )
protectedvirtual

[通知] スレッド開始前通知.

CThread::Start() 実行時、リターンする前にこのメソッドが新規スレッド上でコールされます。

TnbThread.h380 行目に定義があります。

◆ Run()

virtual DWORD Run ( void  )
protectedpure virtual

[動作] スレッド処理本体

覚え書き
この関数にスレッドの処理を記述します。 ループで IsRunnable() をコールし、偽なら関数をリターンするように、 する必要が有ります。
戻り値
戻り値。 CThread::GetThreadResult() で得られる値です。

CMsgQueueWatcherT< TYP >, CMsgQueueWatcherT< AvrcpMsg >, CMsgQueueWatcherT< BTEVENT >, CMsgQueueWatcherT< TMyPowerBroadcast >, CDialupWatcher, CProcessingCtrl, CPollingTriggerT< TYP >, CRs232cExで実装されています。