TNB Library
公開メンバ関数 | 全メンバ一覧
CSyncMetered クラス

Metered排他管理クラス [詳解]

#include <TnbSyncMetered.h>

+ CSyncMetered の継承関係図

公開メンバ関数

 CSyncMetered (LPCTSTR lpszName=NULL, int iMaximumCount=1)
 コンストラクタ [詳解]
 
virtual bool Lock (DWORD dwTime=INFINITE) const
 [排他] ロック [詳解]
 
virtual void Unlock (void) const
 [排他] アンロック [詳解]
 
virtual ~CSyncMetered (void)
 デストラクタ [詳解]
 

詳解

Metered排他管理クラス

MeteredSectionを使った同期を実現します。
覚え書き
別プロセスでも別インスタンスでも同じ名前なら同期が取れます。
同スレッドではロックできます(デッドロックに注意)。
カウンタを指定できます。
参照
http://msdn.microsoft.com/library/en-us/dndllpro/html/msdn_metrsect.asp
必要ファイル
TnbSyncMetered.h
日付
06/04/14 新規作成
06/11/15 作成失敗したら スローするように変更。

TnbSyncMetered.h55 行目に定義があります。

構築子と解体子

◆ CSyncMetered()

CSyncMetered ( LPCTSTR  lpszName = NULL,
int  iMaximumCount = 1 
)
explicit

コンストラクタ

引数
lpszName同期用の名前を指定します。 省略すると別インスタンス同士の同期は取れません。
iMaximumCount同時に実行できる数を指定します。省略すると1です。 同じ名前がすでに作成されている場合、この値は無視されます。
例外
CInvalidParamException名前不正など、同期オブジェクトが作成できなかった時、スローされます。

TnbSyncMetered.h69 行目に定義があります。

◆ ~CSyncMetered()

virtual ~CSyncMetered ( void  )
virtual

デストラクタ

覚え書き
ロックした数をアンロックしてます。

TnbSyncMetered.h89 行目に定義があります。

関数詳解

◆ Lock()

virtual bool Lock ( DWORD  dwTime = INFINITE) const
virtual

[排他] ロック

引数
dwTimeロックにトライし続けるミリ秒。省略すると無限に待ちます。
戻り値
true成功
false失敗

ISynchronizedを実装しています。

TnbSyncMetered.h108 行目に定義があります。

◆ Unlock()

virtual void Unlock ( void  ) const
virtual

[排他] アンロック

ISynchronizedを実装しています。

TnbSyncMetered.h123 行目に定義があります。