WIL説明書(C++)  3.0.0
全メンバ一覧 | 公開メンバ関数 | 公開変数類 | 限定公開メンバ関数 | 静的限定公開メンバ関数 | 限定公開変数類
FVCL::CFvThread クラス

スレッドクラス [詳解]

詳解

スレッドクラス

namespace FVCL

簡易的なスレッド機構を提供します。

必要条件:
ヘッダー: FVCLbasic.h

公開メンバ関数

 CFvThread ()
 コンストラクタ [詳解]
 
 CFvThread (const CFvThread &src)
 コピーコンストラクタ [詳解]
 
 CFvThread (ThreadHandler function, void *param)
 初期値指定コンストラクタ [詳解]
 
CFvThreadoperator= (const CFvThread &src)
 代入オペレータ [詳解]
 
bool operator== (const CFvThread &src) const
 比較オペレータ(==) [詳解]
 
bool operator!= (const CFvThread &src) const
 比較オペレータ(!=) [詳解]
 
virtual void Start (INT num=0)
 スレッドの開始 [詳解]
 
virtual void Stop ()
 スレッドの停止 [詳解]
 
virtual bool IsBusy () const
 スレッドの実行状態 [詳解]
 
virtual bool Wait (INT timeout=3000, INT status=FVCL::ThreadStatus::SLEEP) const
 待機 [詳解]
 
virtual bool SafeSleep (INT timeout) const
 スリープ [詳解]
 

公開変数類

UINT UserID
 識別子 [詳解]
 
ThreadHandler UserProc
 コールバック関数 [詳解]
 
void * UserProcParam
 コールバック関数へ渡す引数 [詳解]
 
INT ThreadOrder
 スレッドへの要求 [詳解]
 
INT ThreadStatus
 スレッドの状態 [詳解]
 
INT ThreadLoopCount
 スレッドの繰り返し回数 [初期値:0、範囲:0~] [詳解]
 
INT ThreadLoopMax
 スレッドの繰り返し上限 [初期値:0、範囲:0=無限, 1~=有限] [詳解]
 

限定公開メンバ関数

virtual bool ThreadProc ()
 スレッド関数 (スタブ) [詳解]
 

静的限定公開メンバ関数

static UINT _ThreadKicker (void *pvParam)
 周期処理 [詳解]
 

限定公開変数類

HANDLE m_hThread
 スレッドハンドル [詳解]
 
UINT m_ThreadID
 スレッドID [詳解]
 

構築子と解体子

FVCL::CFvThread::CFvThread ( )

コンストラクタ

標準のコンストラクタです。

FVCL::CFvThread::CFvThread ( const CFvThread src)

コピーコンストラクタ

同一クラスの内容を複製してインスタンスを構築します。

引数
[in]src複製元
FVCL::CFvThread::CFvThread ( ThreadHandler  function,
void *  param 
)

初期値指定コンストラクタ

初期値を指定してインスタンスを構築します。

引数
[in]functionコールバック関数
[in]paramコールバック関数に渡す引数
解説:
param は任意ですが通常はコールバックされる関数を保有するクラスの this ポインタを渡してください。 ユーザーが設定したコールバック関数がクラスのスタティックメンバの場合、 コールバック関数からクラスのインスタンスメンバに直接アクセス出来ない為、 param に渡された this ポインタを介してアクセスする必要が有ります。 必要が無ければ NULL を指定して構いません。
参照
UserProc
UserProcParam

関数詳解

FVCL::CFvThread::operator= ( const CFvThread src)

代入オペレータ

同一クラスのオブジェクトの内容を複製して、自身に代入します。

引数
[in]src複製元
戻り値
代入後の自身のオブジェクトへの参照を返します。
FVCL::CFvThread::operator== ( const CFvThread src) const

比較オペレータ(==)

同一クラスのオブジェクトの内容と比較します。

引数
[in]src比較対象
戻り値
true一致
false不一致
FVCL::CFvThread::operator!= ( const CFvThread src) const

比較オペレータ(!=)

同一クラスのオブジェクトの内容と比較します。

引数
[in]src比較対象
戻り値
true不一致
false一致
FVCL::CFvThread::Start ( INT  num = 0)
virtual

スレッドの開始

待機中のスレッドを開始します。

引数
[in]num実行回数 [0:無限、1~:有限]
FVCL::CFvThread::Stop ( )
virtual

スレッドの停止

実行中のスレッドを停止します。

FVCL::CFvThread::IsBusy ( ) const
virtual

スレッドの実行状態

戻り値
true実行中です。
false停止または破棄されています。
FVCL::CFvThread::Wait ( INT  timeout = 3000,
INT  status = FVCL::ThreadStatus::SLEEP 
) const
virtual

待機

スレッドの状態(ThreadStatus)が引数に指定した status になるまで待機します。

引数
[in]timeout待機時間 (msec) [-1:無限、0~:有限]
[in]status監視するステータス
FVCL::CFvThread::SafeSleep ( INT  timeout) const
virtual

スリープ

指定された時間が経過するか、このスレッドが停止されるまで待機します。

引数
[in]timeout待機時間 (msec) [-1:無限、0~:有限]
戻り値
true正常終了
false中断されました。
FVCL::CFvThread::_ThreadKicker ( void *  pvParam)
staticprotected

周期処理

スレッド関数を周期的に呼び出す関数です。 この関数がスレッドに登録されています。 Start / Stop メソッドによって周期処理が開始/停止されます。

戻り値
常に 0 を返します。
スレッド関数の呼び出し:
UserProc が NULL の時、スレッド関数(ThreadProc)を呼び出し、 そうでなければコールバック関数(UserProc)を呼び出します。 スレッド関数の戻り値が偽(false または FALSE)になるか、 停止(ThreadOrder = STOP)されたときや 繰り返し回数(ThreadLoopCount)が上限(ThreadLoopMax)に到達すると停止します。
FVCL::CFvThread::ThreadProc ( )
protectedvirtual

スレッド関数 (スタブ)

この関数は _ThreadKicker からコールされるインスタンスメンバです。 このクラスでは内部処理は実装しておらず常に false を返します。 このクラスを継承して独自のスレッドクラスを作成する場合は、 このメソッドをオーバーライドして独自の処理を実装してください。

戻り値
true継続
false中断 (_ThreadKicker が待機状態になります。)

メンバ詳解

FVCL::CFvThread::UserID

識別子

ユーザーが識別する為の ID です。特に制約はありません。

FVCL::CFvThread::UserProc

コールバック関数

_ThreadKicker からコールされる関数ポインタです。

FVCL::CFvThread::UserProcParam

コールバック関数へ渡す引数

_ThreadKickerUserProc をコールする際に渡す引数です。

FVCL::CFvThread::ThreadOrder

スレッドへの要求

通常は、このフィールドを直接変更せず、Start / Stop メソッドを使用してください。

このフィールドに FVCL::ThreadOrder::KILL を指定するとスレッドが完全に停止され、 Start メソッドで開始できなくなります。

参照
FVCL::ThreadOrder
FVCL::CFvThread::ThreadStatus

スレッドの状態

参照
FVCL::ThreadStatus
FVCL::CFvThread::ThreadLoopCount

スレッドの繰り返し回数 [初期値:0、範囲:0~]

FVCL::CFvThread::ThreadLoopMax

スレッドの繰り返し上限 [初期値:0、範囲:0=無限, 1~=有限]

FVCL::CFvThread::m_hThread
protected

スレッドハンドル

FVCL::CFvThread::m_ThreadID
protected

スレッドID


Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2023年11月02日(木) 10時12分57秒 for WIL説明書(C++) by doxygen 1.8.11