Event排他管理クラス
[詳解]
#include <TnbSync.h>
Event排他管理クラス
EVENTを使った同期を実現します。
- 覚え書き
- 別プロセスでも別インスタンスでも同じ名前なら同期が取れます。
-
同スレッドでもロックできます(デッドロックに注意)。
- 参照
- http://msdn.microsoft.com/library/ja/jpdllpro/html/_win32_createevent.asp
- 必要ファイル
- TnbSync.h
- 日付
- 06/04/19 新規作成
-
06/09/13 コンストラクタの第一デフォルト引数を変更。 Lock状態とシグナル状態の関係を誤っていた。
-
06/10/31 抽象クラスを使用するように変更。
-
06/11/15 作成失敗したら スローするように変更。
TnbSync.h の 479 行目に定義があります。
◆ CSyncEvent() [1/2]
CSyncEvent |
( |
bool |
boIsManualReset = false , |
|
|
bool |
boIsLock = false , |
|
|
LPCTSTR |
lpszName = NULL |
|
) |
| |
|
explicit |
コンストラクタ
- 引数
-
boIsManualReset | falseか省略なら自動リセットオブジェクト、 trueなら手動リセットオブジェクトになります。 |
boIsLock | 初期状態。trueならLock状態、省略かfalseならUnlock状態で作成します。 |
lpszName | Eventの名前。省略可能。 |
- 例外
-
TnbSync.h の 493 行目に定義があります。
◆ CSyncEvent() [2/2]
コンストラクタ
- 引数
-
hEvent | CreateEvent()で作成したハンドル |
- 例外
-
TnbSync.h の 512 行目に定義があります。
◆ ~CSyncEvent()
◆ GetHandle()
virtual HANDLE GetHandle |
( |
void |
| ) |
const |
|
virtual |
◆ Lock()
virtual bool Lock |
( |
DWORD |
dwTime = INFINITE | ) |
const |
|
virtualinherited |
◆ operator HANDLE()
operator HANDLE |
( |
void |
| ) |
const |
|
inherited |
◆ Pulse()
[排他] ロック状態にする
- 覚え書き
- 一瞬アンロック状態にします。
TnbSync.h の 556 行目に定義があります。
◆ ToLock()
[排他] ロック状態にする
- 覚え書き
- 待機はしません。ロックに成功しない可能性も有ります。
TnbSync.h の 544 行目に定義があります。
◆ Unlock()
virtual void Unlock |
( |
void |
| ) |
const |
|
virtual |