CriticalSection クラス
クリティカル セクション オブジェクトを表します。
構文
class CriticalSection;
メンバー
コンストラクター
名前 | 説明 |
---|---|
CriticalSection::CriticalSection | ミューテックス オブジェクトに似ているが、単一のプロセスのスレッドでのみ使用できる同期オブジェクトを初期化します。 |
CriticalSection::~CriticalSection | 現在の CriticalSection オブジェクトを初期化解除して破棄します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CriticalSection::IsValid | 現在のクリティカル セクションが有効かどうかを示します。 |
CriticalSection::Lock | 指定したクリティカル セクション オブジェクトの所有権を待機します。 この関数は、呼び出し元のスレッドに所有権が付与されたときに返されます。 |
CriticalSection::TryLock | ブロックせずにクリティカル セクションの入力を試します。 呼び出しが成功すると、呼び出し元のスレッドはクリティカル セクションの所有権を取得します。 |
プロテクト データ メンバー
名前 | 説明 |
---|---|
CriticalSection::cs_ | クリティカル セクションのデータ メンバーを宣言します。 |
継承階層
CriticalSection
要件
ヘッダー: corewrappers.h
名前空間: Microsoft::WRL::Wrappers
CriticalSection::~CriticalSection
現在の CriticalSection
オブジェクトを初期化解除して破棄します。
WRL_NOTHROW ~CriticalSection();
CriticalSection::CriticalSection
ミューテックス オブジェクトに似ているが、単一のプロセスのスレッドでのみ使用できる同期オブジェクトを初期化します。
explicit CriticalSection(
ULONG spincount = 0
);
パラメーター
spincount
クリティカル セクション オブジェクトのスピン カウント。 既定値は0です。
解説
重要なセクションとスピンカウントの詳細については、Windows API ドキュメントのSynchronization
セクションのInitializeCriticalSectionAndSpinCount
関数を参照してください。
CriticalSection::cs_
クリティカル セクションのデータ メンバーを宣言します。
CRITICAL_SECTION cs_;
解説
このデータ メンバーは保護されています。
CriticalSection::IsValid
現在のクリティカル セクションが有効かどうかを示します。
bool IsValid() const;
戻り値
既定では、常に true
を返します。
CriticalSection::Lock
指定したクリティカル セクション オブジェクトの所有権を待機します。 この関数は、呼び出し元のスレッドに所有権が付与されたときに返されます。
SyncLock Lock();
static SyncLock Lock(
_In_ CRITICAL_SECTION* cs
);
パラメーター
cs
ユーザー指定のクリティカル セクション オブジェクト。
戻り値
現在のクリティカル セクションをロックを解除するために使用できるロック オブジェクト。
解説
最初の Lock
関数は、現在のクリティカル セクション オブジェクトに影響します。 2 番目の Lock
関数は、ユーザー指定のクリティカル セクションに影響します。
CriticalSection::TryLock
ブロックせずにクリティカル セクションの入力を試します。 呼び出しが成功すると、呼び出し元のスレッドはクリティカル セクションの所有権を取得します。
SyncLock TryLock();
static SyncLock TryLock(
_In_ CRITICAL_SECTION* cs
);
パラメーター
cs
ユーザー指定のクリティカル セクション オブジェクト。
戻り値
クリティカル セクションが正常に入力された場合、または現在のスレッドが既にクリティカル セクションを所有している場合は、0 以外の値。 別のスレッドが既にクリティカル セクションを所有している場合は 0。
解説
最初の TryLock
関数は、現在のクリティカル セクション オブジェクトに影響します。 2 番目の TryLock
関数は、ユーザー指定のクリティカル セクションに影響します。