Semaphore排他管理クラス
[詳解]
#include <TnbSync.h>
Semaphore排他管理クラス
Semaphoreを使った同期を実現します。
- 覚え書き
- 別プロセスでも別インスタンスでも同じ名前なら同期が取れます。
-
同スレッドでもロックできます(デッドロックに注意)。
- 参照
- http://msdn.microsoft.com/library/ja/jpdllpro/html/_win32_createsemaphore.asp
- 必要ファイル
- TnbSync.h
- 日付
- 06/05/01 新規作成
-
06/09/19 引数つきのUnlockメソッド、追加。
-
06/10/31 抽象クラスを使用するように変更。
-
06/11/15 作成失敗したら スローするように変更。
TnbSync.h の 369 行目に定義があります。
◆ CSyncSemaphore() [1/2]
コンストラクタ
- 引数
-
lpszName | 同期用の名前を指定します。 省略すると別インスタンス同士の同期は取れません。 |
iMaximumCount | 同時に実行できる数を指定します。省略すると1です。 同じ名前がすでに作成されている場合、この値は無視されます。 |
- 例外
-
TnbSync.h の 382 行目に定義があります。
◆ CSyncSemaphore() [2/2]
コンストラクタ
- 引数
-
hSema | CreateSemaphore()で作成したハンドル |
- 例外
-
TnbSync.h の 401 行目に定義があります。
◆ ~CSyncSemaphore()
◆ GetHandle()
virtual HANDLE GetHandle |
( |
void |
| ) |
const |
|
virtual |
◆ Lock()
virtual bool Lock |
( |
DWORD |
dwTime = INFINITE | ) |
const |
|
virtualinherited |
◆ operator HANDLE()
operator HANDLE |
( |
void |
| ) |
const |
|
inherited |
◆ Unlock() [1/2]
LONG Unlock |
( |
LONG |
lCount | ) |
const |
◆ Unlock() [2/2]
virtual void Unlock |
( |
void |
| ) |
const |
|
virtual |