スレッド処理制御クラス
[詳解]
#include <TnbThreadDispatch.h>
スレッド処理制御クラス
メッセージ通知で、別スレッド内で処理をさせることができます。
- 覚え書き
- 処理は、リスナーを実装したクラスを登録するか、本クラスを継承し OnThreadDispatchReceive() をオーバーライドします。(推奨は前者)
-
リスナー内で SendMessage を使う場合、 ReferThreadStatus() で
関連ウィンドウ
を指定する 必要があります。 CThread::SetOwnerHwnd() を参照してください。
- 必要ファイル
- TnbThreadDispatch.h
- 日付
- 06/04/01 新規作成
-
06/08/03 ThreadID取得メソッド追加。本クラスを継承して処理を実現させる方法も追加。
-
06/10/25 OnSetup() メソッド追加。
-
09/08/27 構成変更。
-
10/03/19 ReferThreadStatus() 追加。
-
11/01/06 DispatchMessage() を行うようにした。
-
11/02/03 IListener::OnThreadDispatchSetup() を呼ぶタイミングを変更。
-
12/05/31 IsDispatching() を追加。
TnbThreadDispatch.h の 46 行目に定義があります。
◆ CThreadDispatch()
◆ ~CThreadDispatch()
◆ GetThreadId()
DWORD GetThreadId |
( |
void |
| ) |
const |
◆ IsAlive()
bool IsAlive |
( |
void |
| ) |
const |
◆ IsDispatching()
bool IsDispatching |
( |
void |
| ) |
const |
◆ OnThreadDispatchReceive()
virtual bool OnThreadDispatchReceive |
( |
UINT |
nMsg, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
virtual |
[通知] メッセージ受信.
最後は必ず nMsgにWM_QUITが入って通知されます。
- 覚え書き
- リスナーを登録しないと、メッセージ受信時このメソッドがコールされます。 本クラスを継承し、本メソッドを継承することでも、処理が実装できます。 (リスナーを使用するほうを推奨します)
- 引数
-
nMsg | メッセージ |
wParam | WPARAM |
lParam | LPARAM |
- 戻り値
-
TnbThreadDispatch.h の 235 行目に定義があります。
◆ OnThreadDispatchSetup()
virtual void OnThreadDispatchSetup |
( |
void |
| ) |
|
|
virtual |
[通知] 開始通知.
受信スレッドが開始されると、通知されます。
- 覚え書き
- リスナーを登録しないと、メッセージ受信時このメソッドがコールされます。 本クラスを継承し、本メソッドを継承することでも、処理が実装できます。 (リスナーを使用するほうを推奨します)
TnbThreadDispatch.h の 248 行目に定義があります。
◆ PostMessage()
bool PostMessage |
( |
UINT |
nMsg, |
|
|
WPARAM |
wParam = 0 , |
|
|
LPARAM |
lParam = 0 |
|
) |
| const |
[設定] スレッドへPostMessage
- 引数
-
nMsg | メッセージ |
wParam | WPARAM。省略可能。 |
lParam | LPARAM。省略可能。 |
- 戻り値
-
TnbThreadDispatch.h の 204 行目に定義があります。
◆ ReferThreadStatus()
◆ SetListener()
◆ SetPriority()
bool SetPriority |
( |
int |
priority | ) |
|
[設定] 優先度設定.
メッセージキュースレッドの優先度を指定できます。
- 引数
-
priority | 優先度(-2〜2, 15。0がノーマル。大きいほうが優先度大) |
- 戻り値
-
TnbThreadDispatch.h の 124 行目に定義があります。
◆ Start()
bool Start |
( |
LPCTSTR |
lpszName = NULL | ) |
|
[設定] スレッド開始
- 引数
-
lpszName | スレッドの名前(DEBUG以外では無視されます) |
- 戻り値
-
true | 成功。 |
false | 失敗(スレッド起動失敗/既にスレッド実行中) |
TnbThreadDispatch.h の 144 行目に定義があります。
◆ Stop()