CCriticalSection クラス
「クリティカル セクション」— 1 に一つのスレッドだけがリソースまたはコード セクションにアクセスできるようにする同期オブジェクト表します。
class CCriticalSection : public CSyncObject
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
CCriticalSection オブジェクトを構築します。 |
パブリック メソッド
名前 |
説明 |
---|---|
CCriticalSection のオブジェクトにアクセスするときに使用します。 |
|
CCriticalSection のオブジェクトを解放します。 |
パブリック演算子
名前 |
説明 |
---|---|
CRITICAL_SECTION の内部オブジェクトへのポインターを取得します。 |
パブリック データ メンバー
名前 |
説明 |
---|---|
CRITICAL_SECTION のオブジェクト。 |
解説
クリティカル セクションは 1 種類のスレッドは一度にデータまたは他のマネージ リソースを変更できるようになるある場合に便利です。たとえば、リンク リストにノードを追加するには、1 種類のスレッドによって一度に与える必要なプロセスです。リンク リストを制御するために CCriticalSection のオブジェクトを使用して 1 一つのスレッドだけがリストに同時にアクセス権を得ることができます。
[!メモ]
CCriticalSection のクラスの機能が実際の Win32 CRITICAL_SECTION のオブジェクトによって提供されます。
クリティカル セクションはミューテックスではなく速度が、重要なリソースがプロセスの境界を越えて使用されない場合に使用されます CMutex (を参照)。
CCriticalSection のオブジェクトを使用するための 2 とおりの方法があります: クラスとそれ自身でスタンドアロン。
CCriticalSection のスタンドアロン オブジェクトを使用するスタンドアロン メソッドは、必要に応じて CCriticalSection オブジェクトを構築します。コンストラクターから正常に返しますが、明示的に [ロック]への呼び出しでオブジェクトをロックした後。クリティカル セクションにアクセスすると [ロック解除] を呼び出します。このメソッドは、がソース・コードを読む場合は、さらに明確へのアクセスの前後にクリティカル セクションのロックしたり、ロックを解除したりするのを忘れないでように、エラーが発生しやすくなります。
メソッドは、目的の CSingleLock のクラスを使用することです。また、Lock と Unlock のメソッドがあり、例外が発生した場合はリソースのロックを解除することを考慮する必要はありません。
埋め込みメソッド、複数のスレッドと CCriticalSectionの型のデータ メンバーをクラスに追加し、データ メンバーをロックして、クラスを共有する必要な場合。
CCriticalSection のオブジェクトの使用の詳細については、" " マルチスレッド: 同期クラスの使用方法を参照してください。
継承階層
CCriticalSection
必要条件
ヘッダー : afxmt.h