メインページ   名前空間一覧   クラス階層   アルファベット順一覧   構成   ファイル一覧   名前空間メンバ   構成メンバ   ファイルメンバ  

クラス KSCL::CThread の解説

・スレッドクラスです。. より詳しく...

KSCL::CThreadに対する継承グラフ

Inheritance graph
[凡例]
KSCL::CThreadのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

公開メンバ

 CThread ()
 ・コンストラクタ。. より詳しく...

virtual ~CThread ()
 ・デストラクタ。. より詳しく...

void Run (LPVOID p_pv=0, const LPSECURITY_ATTRIBUTES *p_pstSecurityAttributes=0, const unsigned int p_uiStackSize=0, const unsigned int p_uiCreationFlags=0)
DWORD GetThreadId () const throw ()
 ・スレッド ID を返します。. より詳しく...

HANDLE GetThreadHandle () const throw ()
 ・スレッドハンドルを返します。. より詳しく...

DWORD SuspendThread () const throw ()
 ・スレッドをサスペンドします。. より詳しく...

DWORD ResumeThread () const throw ()
 ・スレッドをレジュームします。. より詳しく...

bool Close () throw ()
 ・スレッドを閉じます。. より詳しく...


保護メンバ

virtual DWORD Runner (LPVOID p_pv)=0
 ・真のスレッド関数。. より詳しく...


非公開メンバ

DWORD PreRunner (LPVOID p_pv)
 ・真のスレッド関数を呼び出す前後処理をします。. より詳しく...


静的非公開メンバ

unsigned int _stdcall runner (void *p_pv)
 ・スレッド関数。. より詳しく...


非公開属性

CThreadData m_cThisData
 ・スレッドデータ。. より詳しく...

HANDLE m_hThread
 スレッドハンドル。. より詳しく...

DWORD m_dwThreadId
 スレッド ID 。. より詳しく...


解説

・スレッドクラスです。.

 簡単にスレッドとしての機能を実装します。
 このクラスのサブクラスを作って、 CThread::Runner() をオーバーライドすればいいだけ。
 あとは CThread::Run() を呼べば別スレッドとしてそのオーバーライドしたメンバ関数が呼ばれます。
 ただし、別スレッドとして呼べるメンバ関数は1クラスにつきひとつとなるのでご注意を。


コンストラクタとデストラクタの解説

KSCL::CThread::CThread  
 

・コンストラクタ。.

 重要な初期化を行います。

KSCL::CThread::~CThread   [virtual]
 

・デストラクタ。.

 ハンドルをクローズします。


メンバ関数の解説

void KSCL::CThread::Run LPVOID    p_pv = 0,
const LPSECURITY_ATTRIBUTES *    p_pstSecurityAttributes = 0,
const unsigned int    p_uiStackSize = 0,
const unsigned int    p_uiCreationFlags = 0
 

 新スレッドで Runner() を走らせるときにこのメンバ関数を呼んでください。

引数:
p_pv  スレッド関数に渡す引数。デフォルトは 0 。
p_pstSecurityAttributes  セキュリティ構造体。デフォルトは 0 (デフォルトのセキュリティ)。
p_uiStackSize  スタックサイズ。デフォルトは 0 (デフォルトのスタックサイズ)。
p_uiCreationFlags  すぐ実行するかどうか。デフォルトは 0 (すぐ実行します)。

DWORD KSCL::CThread::GetThreadId   const throw ()
 

・スレッド ID を返します。.

HANDLE KSCL::CThread::GetThreadHandle   const throw ()
 

・スレッドハンドルを返します。.

DWORD KSCL::CThread::SuspendThread   const throw ()
 

・スレッドをサスペンドします。.

DWORD KSCL::CThread::ResumeThread   const throw ()
 

・スレッドをレジュームします。.

bool KSCL::CThread::Close   throw ()
 

・スレッドを閉じます。.

戻り値:
true  閉じられました。
false  閉じられませんでした。まだ開いていていない場合も含みます。

unsigned int _stdcall KSCL::CThread::runner void *    p_pv [static, private]
 

・スレッド関数。.

 ホントのスレッド関数です。
 ただし形式だけで、すぐ下のメンバ関数を呼び出します。

引数:
p_pv  自クラスの情報。この情報を元にすぐ下のメンバ関数を呼び出します。

DWORD KSCL::CThread::PreRunner LPVOID    p_pv [private]
 

・真のスレッド関数を呼び出す前後処理をします。.

戻り値:
GetExitCodeThread() で取得できる値。
引数:
p_pv  真のスレッド関数に渡される void ポインタ。

virtual DWORD KSCL::CThread::Runner LPVOID    p_pv [protected, pure virtual]
 

・真のスレッド関数。.

 オーバーライドすれば、オーバーライド先のメンバ関数が呼ばれます。

戻り値:
GetExitCodeThread() で取得できる値。
引数:
p_pv  スレッド関数に渡されるポインタ値。

KSCL::CFuncThread< type_class >, KSCL::CTimer, と KSCL::CFuncThread< CSocketServer >に実装されています.


メンバの解説

CThreadData KSCL::CThread::m_cThisData [private]
 

・スレッドデータ。.

 スレッドに渡す、スレッドにとってもこのクラスにとっても必要な情報です。

HANDLE KSCL::CThread::m_hThread [private]
 

スレッドハンドル。.

DWORD KSCL::CThread::m_dwThreadId [private]
 

スレッド ID 。.


KSCL(KAB-studioClassLibrary)に対してThu Jun 12 09:55:42 2003に生成されました。 doxygen1.2.15