Public 型 | Public メソッド | Protected メソッド
クラス mist::worker_thread

バックグラウンドで実行するワーカースレッドを実現するクラス [詳細]

#include <thread.h>

Public 型

typedef size_t size_type
 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
typedef ptrdiff_t difference_type
 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ

Public メソッド

 worker_thread ()
 ワーカースレッド用のスレッドを作成した状態で待機する
virtual ~worker_thread ()
 ワーカースレッドで使用している全てのリソースを開放する
bool is_suspended ()
 ワーカースレッドがサスペンドしているかどうか
bool close ()
 ワーカースレッドで使用しているリソースを全て開放する
template<class Functor , class Param >
bool execute (Functor f, Param p)
 関数とパラメータを指定してスレッドを実行する
template<class Functor , class Param1 , class Param2 >
bool execute (Functor f, Param1 p1, Param2 p2)
 関数とパラメータを指定してスレッドを実行する
template<class Functor , class Param1 , class Param2 , class Param3 >
bool execute (Functor f, Param1 p1, Param2 p2, Param3 p3)
 関数とパラメータを指定してスレッドを実行する
template<class Functor , class Param1 , class Param2 , class Param3 , class Param4 >
bool execute (Functor f, Param1 p1, Param2 p2, Param3 p3, Param4 p4)
 関数とパラメータを指定してスレッドを実行する
template<class Functor >
bool execute (Functor f)
 関数とパラメータを指定してスレッドを実行する
virtual bool wait (unsigned long dwMilliseconds=INFINITE)
 全ての処理が終了するか,タイムアウトになるまで待機する

Protected メソッド

bool exec (__thread_controller__::__thread_pool_functor__ *func)
 関数をスレッドプール内のスレッドに割り当てて実行する

説明

バックグラウンドで実行するワーカースレッドを実現するクラス

ワーカースレッドには複数のジョブを設定することができ,各ジョブを順次実行します. 全てのジョブが終了すると,ワーカースレッドは待機状態に入り,次のジョブを待ちます.

注意
初回起動時はスレッド生成に伴うオーバーヘッドがあります
使用例
struct parameter{ ... 何らかのパラメータ ... }; // スレッド関数に渡すパラメータ(特に構造体である必要は無い)
void thread_function( const parameter &p ); // スレッド関数(内部で何らかの処理をする)
// これ以降でスレッドを作成する
parameter param;
// ワーカースレッドを初期化
// 関数を実行する
work.execute( thread_function, param );
// ワーカースレッドが実行している処理が全て終了するまで待機
work.wait( );

関数

bool mist::worker_thread::close ( )
inline

ワーカースレッドで使用しているリソースを全て開放する

直ちにワーカースレッドを終了し,ワーカースレッドで使用しているリソースを全て開放する

bool mist::worker_thread::exec ( __thread_controller__::__thread_pool_functor__ *  func)
inlineprotected

関数をスレッドプール内のスレッドに割り当てて実行する

引数
[in]func… 実行されるスレッド関数
template<class Functor , class Param >
bool mist::worker_thread::execute ( Functor  f,
Param  p 
)
inline

関数とパラメータを指定してスレッドを実行する

ワーカースレッドが終了した状態では false を返す. スレッドが実行する関数の引数はコピーして渡される.

引数
[in,out]p… スレッドの関数に渡すパラメータ
[in]f… 実行されるスレッド関数
template<class Functor , class Param1 , class Param2 >
bool mist::worker_thread::execute ( Functor  f,
Param1  p1,
Param2  p2 
)
inline

関数とパラメータを指定してスレッドを実行する

ワーカースレッドが終了した状態では false を返す. スレッドが実行する関数の引数はコピーして渡される.

引数
[in]p1… スレッドの関数に渡すパラメータ1
[in]p2… スレッドの関数に渡すパラメータ2
[in]f… 実行されるスレッド関数
template<class Functor , class Param1 , class Param2 , class Param3 >
bool mist::worker_thread::execute ( Functor  f,
Param1  p1,
Param2  p2,
Param3  p3 
)
inline

関数とパラメータを指定してスレッドを実行する

ワーカースレッドが終了した状態では false を返す. スレッドが実行する関数の引数はコピーして渡される.

引数
[in,out]p1… スレッドの関数に渡すパラメータ
[in,out]p2… スレッドの関数に渡すパラメータ
[in,out]p3… スレッドの関数に渡すパラメータ
[in]f… 実行されるスレッド関数
template<class Functor , class Param1 , class Param2 , class Param3 , class Param4 >
bool mist::worker_thread::execute ( Functor  f,
Param1  p1,
Param2  p2,
Param3  p3,
Param4  p4 
)
inline

関数とパラメータを指定してスレッドを実行する

ワーカースレッドが終了した状態では false を返す. スレッドが実行する関数の引数はコピーして渡される.

引数
[in,out]p1… スレッドの関数に渡すパラメータ
[in,out]p2… スレッドの関数に渡すパラメータ
[in,out]p3… スレッドの関数に渡すパラメータ
[in,out]p4… スレッドの関数に渡すパラメータ
[in]f… 実行されるスレッド関数
template<class Functor >
bool mist::worker_thread::execute ( Functor  f)
inline

関数とパラメータを指定してスレッドを実行する

ワーカースレッドが終了した状態では false を返す.

引数
[in]f… 実行されるスレッド関数
virtual bool mist::worker_thread::wait ( unsigned long  dwMilliseconds = INFINITE)
inlinevirtual

全ての処理が終了するか,タイムアウトになるまで待機する

タイムアウトを INFINITE に設定することで,スレッドが終了するまで待ち続ける. スレッドプールの初期化が終了していない場合は false を返す.

引数
[in]dwMilliseconds… タイムアウト時間(ミリ秒単位)
戻り値
true… スレッドがタイムアウト前に終了した
false… タイムアウトが発生したか,その他のエラーが発生

このクラスの説明は次のファイルから生成されました:

Generated on Wed Nov 12 2014 19:44:29 for MIST by doxygen 1.8.1.2