次の方法で共有


CCriticalSection クラス

「クリティカル セクション」— 1 に一つのスレッドだけがリソースまたはコード セクションにアクセスできるようにする同期オブジェクト表します。

class CCriticalSection : public CSyncObject

メンバー

h5zew56b.collapse_all(ja-jp,VS.110).gifパブリック コンストラクター

名前

説明

CCriticalSection::CCriticalSection

CCriticalSection オブジェクトを構築します。

h5zew56b.collapse_all(ja-jp,VS.110).gifパブリック メソッド

名前

説明

CCriticalSection::Lock

CCriticalSection のオブジェクトにアクセスするときに使用します。

CCriticalSection::Unlock

CCriticalSection のオブジェクトを解放します。

h5zew56b.collapse_all(ja-jp,VS.110).gifパブリック演算子

名前

説明

CCriticalSection::operator CRITICAL_SECTION*

CRITICAL_SECTION の内部オブジェクトへのポインターを取得します。

h5zew56b.collapse_all(ja-jp,VS.110).gifパブリック データ メンバー

名前

説明

CCriticalSection::m_sect

CRITICAL_SECTION のオブジェクト。

解説

クリティカル セクションは 1 種類のスレッドは一度にデータまたは他のマネージ リソースを変更できるようになるある場合に便利です。たとえば、リンク リストにノードを追加するには、1 種類のスレッドによって一度に与える必要なプロセスです。リンク リストを制御するために CCriticalSection のオブジェクトを使用して 1 一つのスレッドだけがリストに同時にアクセス権を得ることができます。

[!メモ]

CCriticalSection のクラスの機能が実際の Win32 CRITICAL_SECTION のオブジェクトによって提供されます。

クリティカル セクションはミューテックスではなく速度が、重要なリソースがプロセスの境界を越えて使用されない場合に使用されます CMutex (を参照)。

CCriticalSection のオブジェクトを使用するための 2 とおりの方法があります: クラスとそれ自身でスタンドアロン。

  • CCriticalSection のスタンドアロン オブジェクトを使用するスタンドアロン メソッドは、必要に応じて CCriticalSection オブジェクトを構築します。コンストラクターから正常に返しますが、明示的に [ロック]への呼び出しでオブジェクトをロックした後。クリティカル セクションにアクセスすると [ロック解除] を呼び出します。このメソッドは、がソース・コードを読む場合は、さらに明確へのアクセスの前後にクリティカル セクションのロックしたり、ロックを解除したりするのを忘れないでように、エラーが発生しやすくなります。

    メソッドは、目的の CSingleLock のクラスを使用することです。また、Lock と Unlock のメソッドがあり、例外が発生した場合はリソースのロックを解除することを考慮する必要はありません。

  • 埋め込みメソッド、複数のスレッドと CCriticalSectionの型のデータ メンバーをクラスに追加し、データ メンバーをロックして、クラスを共有する必要な場合。

CCriticalSection のオブジェクトの使用の詳細については、" " マルチスレッド: 同期クラスの使用方法を参照してください。

継承階層

CObject

CSyncObject

CCriticalSection

必要条件

ヘッダー : afxmt.h

参照

関連項目

CSyncObject クラス

階層図

CMutex クラス