バックグラウンドで実行するワーカースレッドを実現するクラス
[詳細]
#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 );
関数
bool mist::worker_thread::close |
( |
| ) |
|
|
inline |
ワーカースレッドで使用しているリソースを全て開放する
直ちにワーカースレッドを終了し,ワーカースレッドで使用しているリソースを全て開放する
bool mist::worker_thread::exec |
( |
__thread_controller__::__thread_pool_functor__ * |
func | ) |
|
|
inlineprotected |
関数をスレッドプール内のスレッドに割り当てて実行する
- 引数
-
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 を返す.
- 引数
-
virtual bool mist::worker_thread::wait |
( |
unsigned long |
dwMilliseconds = INFINITE | ) |
|
|
inlinevirtual |
全ての処理が終了するか,タイムアウトになるまで待機する
タイムアウトを INFINITE に設定することで,スレッドが終了するまで待ち続ける. スレッドプールの初期化が終了していない場合は false を返す.
- 引数
-
[in] | dwMilliseconds | … タイムアウト時間(ミリ秒単位) |
- 戻り値
-
true | … スレッドがタイムアウト前に終了した |
false | … タイムアウトが発生したか,その他のエラーが発生 |
このクラスの説明は次のファイルから生成されました: