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

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

#include <TnbSync.h>

+ CSyncMutex の継承関係図

公開メンバ関数

 CSyncMutex (bool boIsLock=false, LPCTSTR lpszName=NULL)
 コンストラクタ [詳解]
 
 CSyncMutex (HANDLE hMutex)
 コンストラクタ [詳解]
 
virtual HANDLE GetHandle (void) const
 [取得] Mutexハンドル取得 [詳解]
 
virtual bool Lock (DWORD dwTime=INFINITE) const
 [排他] ロック [詳解]
 
 operator HANDLE (void) const
 [取得] ハンドル取得 [詳解]
 
virtual void Unlock (void) const
 [排他] アンロック [詳解]
 
virtual ~CSyncMutex (void)
 デストラクタ [詳解]
 

詳解

Mutex排他管理クラス

MUTEXを使った同期を実現します。
覚え書き
別プロセスでも別インスタンスでも同じ名前なら同期が取れます(同じ排他オブジェクトとして動きます)。
注意
同スレッドではロックできません。同一スレッドの場合ネストロックになります。 ロックの数だけアンロックをしてください。
参照
http://msdn.microsoft.com/library/ja/jpdllpro/html/_win32_createmutex.asp
必要ファイル
TnbSync.h
日付
06/01/01 新規作成
06/10/31 抽象クラスを使用するように変更。
06/11/15 作成失敗したら スローするように変更。

TnbSync.h272 行目に定義があります。

構築子と解体子

◆ CSyncMutex() [1/2]

CSyncMutex ( bool  boIsLock = false,
LPCTSTR  lpszName = NULL 
)
explicit

コンストラクタ

引数
boIsLock初期状態。trueならLock状態、省略かfalseならUnlock状態で作成します。
lpszNameMUTEXの名前。省略可能。
例外
CInvalidParamException名前不正など、同期オブジェクトが作成できなかった時、スローされます。

TnbSync.h283 行目に定義があります。

◆ CSyncMutex() [2/2]

CSyncMutex ( HANDLE  hMutex)
explicit

コンストラクタ

引数
hMutexCreateMutex()で作成したハンドル
例外
CInvalidParamExceptionNULLハンドルを指定した時、スローされます。

TnbSync.h307 行目に定義があります。

◆ ~CSyncMutex()

virtual ~CSyncMutex ( void  )
virtual

デストラクタ

TnbSync.h317 行目に定義があります。

関数詳解

◆ GetHandle()

virtual HANDLE GetHandle ( void  ) const
virtual

[取得] Mutexハンドル取得

戻り値
ハンドル

CAbstractSyncHandleを実装しています。

TnbSync.h339 行目に定義があります。

◆ Lock()

virtual bool Lock ( DWORD  dwTime = INFINITE) const
virtualinherited

[排他] ロック

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

ISynchronizedを実装しています。

TnbSync.h91 行目に定義があります。

◆ operator HANDLE()

operator HANDLE ( void  ) const
inherited

[取得] ハンドル取得

戻り値
ハンドル

TnbSync.h80 行目に定義があります。

◆ Unlock()

virtual void Unlock ( void  ) const
virtual

[排他] アンロック

ISynchronizedを実装しています。

TnbSync.h327 行目に定義があります。