Microsoft DirectX 8.0

CCritSec クラス

CCritSec クラスの階層

スレッドのロックを提供する。

宣言 : Wxutil.h

このクラスはクリティカル セクションのラッパーである。Lock および Unlock メソッドを呼び出すことによって、スレッドをロックおよびロック解除することができる。ただし、このクラスと CAutoLock クラスを組み合わせて使用する方が安全である。CAutoLock クラスがスコープの範囲外である場合は、自動的に CCritSec オブジェクトのロックを解除する。さらに、効率的なインライン コードにコンパイルする。

Puvlic メンバ変数
m_currentOwner所有するスレッドのスレッド識別子。
m_lockCountこのオブジェクトについて未処理のロックの数。
m_fTraceこのロックをトレースするかどうかを指定するブール型の値。
Public メソッド
CCritSecコンストラクタ メソッド。
~CCritSecデストラクタ メソッド。
Lockクリティカル セクション オブジェクトをロックする。
Unlockクリティカル セクション オブジェクトのロックを解除する。

CCritSec.m_currentOwner

CCritSec クラス

所有するスレッドのスレッド識別子。

構文

DWORD m_currentOwner;

注意

このメンバ変数は、基底クラスのデバッグ バージョンでのみ定義される。CCritSec debug 関数はこのメンバを使用する。

CCritSec.m_lockCount

CCritSec クラス

このオブジェクトについて未処理のロックの数。

構文

DWORD m_lockCount;

注意

このメンバ変数は、基底クラスのデバッグ バージョンでのみ定義される。CCritSec debug 関数はこのメンバを使用する。

CCritSec.m_fTrace

CCritSec クラス

このロックをトレースするかどうかを指定するブール型の値。

構文

BOOL m_fTrace;

注意

このメンバ変数は、基底クラスのデバッグ バージョンでのみ定義される。この変数が TRUE の場合、ロック状態のトレースがデバッグ ログに書き込まれる。クリティカル セクションのデバッグ ログがアクティブでなければならない。詳細については、「DbgLockTrace」を参照すること。

CCritSec::CCritSec

CCritSec クラス

コンストラクタ メソッド。

構文

CCritSec(void);

注意

このメソッドは、Microsoft® Win32® InitializeCriticalSection 関数を呼び出して、クリティカル セクションを初期化する。

CCritSec::~CCritSec

CCritSec クラス

デストラクタ メソッド。

構文

~CCritSec(void);

注意

このメソッドは、Microsoft® Win32® DeleteCriticalSection 関数を呼び出して、クリティカル セクションを削除する。

CCritSec::Lock

CCritSec クラス

クリティカル セクション オブジェクトをロックする。

構文

void Lock(void);

戻り値

戻り値なし。

注意

このメソッドは、Microsoft® Win32® EnterCriticalSection メソッドを呼び出す。

クリティカル セクションのロックを解除するには、CCritSec::Unlock メンバ関数を呼び出す。同じスレッドについて、Lock メソッドを複数呼び出すことができる。同じ回数だけ Unlock 呼び出す必要がある。

オブジェクトが既に別のスレッドによってロックされている場合、CCritSec::Lock メソッドは、そのオブジェクトが解放されるまで、または可能性のあるデッドロック例外が発生するまでブロックする。

CCritSec::Unlock

CCritSec クラス

クリティカル セクション オブジェクトのロックを解除する。

構文

void Unlock(void);

戻り値

戻り値なし。

注意

このメソッドは、Microsoft® Win32® LeaveCriticalSection メソッドを呼び出す。

Lock メソッドの各呼び出しについて、このメソッドを 1 回呼び出す。