仕様
スレッドを作成し、そのスレッド空間からコールバック用の仮想関数を呼び出します。仮想関数をオーバロードして
自由に実装して下さい。
ソースコード
sthread.h 右クリックで「対象をファイルに保存」でダウンロードしてください。
依存関係
scritical.hも使用してます。同じフォルダに入れておいてね。
メソッド
BeginThread()
スレッドを新規作成し、そのスレッド空間からインスタンスのコールバック用仮想関数(OnThread) を呼び出します。
// m_thread はSThread インスタンス
this->m_thread.BeginThread();
GetThreadHandle()
スレッドハンドルを返します。スレッドの存在判定にお使いください。(仮にスレッドハンドルを取得できても、
その後の経過時間によってはスレッドが終了している可能性もありえます。)
HANDLE hThread = this->m_thread.GetThreadHandle();
Waiting()
スレッドが終了するまで待機し、制御を返しません。待機する時間を制限する場合は引数に数値(ms)を渡します。デフォルト値は
INFINITI で時間制限無しです。
this->m_thread.Waiting();
Cancel()
スレッド間排他制御の実装されたキャンセルフラグ操作メソッドです。キャンセルフラグを取得するにはIsCancel() を使います。
デフォルトでは何の実装もされてません。自由にお使いください。
this->m_thread.Cancel();
IsCancel()
スレッド間排他制御の実装されたキャンセルフラグ操作メソッドです。キャンセルフラグを設定するにはCancel() を使います。
デフォルトでは何の実装もされてません。自由にお使いください。
BOOL bCancel = this->m_thread.IsCancel();
OnThread()
新規に作成されたスレッド空間から呼び出される仮想関数です。必ずオーバーライドしてください。
class MyThread : public SThread{
public:
MyThread(){};
~MyThread(){};
protected:
void OnThread(void *lpVoid){};
};