CComMultiThreadModel::AutoCriticalSection

typedef CComAutoCriticalSection AutoCriticalSection;

解説

CComMultiThreadModelを使用する場合、クラスCComAutoCriticalSection取得のクリティカル セクション オブジェクトの所有権を解放するメソッドを提供、 typedefAutoCriticalSectionを参照します。

またCComSingleThreadModelCComMultiThreadModelNoCS AutoCriticalSectionの定義が含まれます。スレッド モデルのクラスと、クリティカル セクション クラス参照AutoCriticalSectionの関係を次に示します:

クラスの定義 クラスの参照
CComMultiThreadModel CComCriticalSection
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

AutoCriticalSectionに加え、 typedefCriticalSectionを使用することができます。CRT スタートアップ コードを削除する場合、 AutoCriticalSectionグローバル オブジェクトや静的クラス メンバーを指定しないでください。

次のコードはCComObjectRootExから取られる。

templatelt;クラスの ThreadModel >CComObjectRootEx クラス: パブリック CComObjectRootBase{パブリック。typedef ThreadModel _ThreadModel;typedef _ThreadModel::AutoCriticalSection _CritSec;ULONG InternalAddRef){..._ThreadModel::Increment(&m_dwRef) を返す;}...void ロック () {m_critsec。ロック ();}...プライベート。_CritSec m_critsec;}

次の表、 ThreadModelテンプレート パラメーターと、アプリケーションで使用するスレッド モデルに応じて、 InternalAddRefロックメソッドの結果を表示します。:

ThreadModel = CComObjectThreadModel

1 つまたはアパート 無料
InternalAddRef 増分スレッド セーフではありません。 スレッド セーフなインクリメントです。
ロック 何もしない;ロックするクリティカル セクションがないです。 クリティカル セクションがロックされています。

ThreadModel = CComObjectThreadModel::ThreadModelNoCS

1 つまたはアパート 無料
InternalAddRef 増分スレッド セーフではありません。 スレッド セーフなインクリメントです。
ロック 何もしない;ロックするクリティカル セクションがないです。 何もしない;ロックするクリティカル セクションがないです。

CComMultiThreadModel 概要|nbsp;クラス メンバー(&N)

参照特価;CComObjectThreadModelCComGlobalsThreadModelCComMultiThreadModel::ThreadModelNoCS(&N)

Index