- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- データ構造
- データ構造索引
- クラス階層
- データフィールド

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;
// ワーカースレッドを初期化
mist::worker_thread work;
// 関数を実行する
work.execute( thread_function, param );
// ワーカースレッドが実行している処理が全て終了するまで待機
work.wait( );

## 関数

bool mist::worker_thread::close | ( |  | ) |
| inline

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

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

bool mist::worker_thread::exec | ( | __thread_controller__::__thread_pool_functor__ * | func | ) |
| inline protected

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

引数

  [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` | ) |
| inline virtual

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

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

引数

  [in] | dwMilliseconds | … タイムアウト時間（ミリ秒単位）

戻り値

  true | … スレッドがタイムアウト前に終了した
  false | … タイムアウトが発生したか，その他のエラーが発生

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

- thread.h