次の方法で共有


CComSingleThreadModel クラス

このクラスには、変数の値をインクリメントおよびデクリメントするためのメソッドが用意されています。

構文

class CComSingleThreadModel

メンバー

パブリック typedef

名前 説明
CComSingleThreadModel::AutoCriticalSection CComFakeCriticalSection クラスを参照します。
CComSingleThreadModel::CriticalSection CComFakeCriticalSection クラスを参照します。
CComSingleThreadModel::ThreadModelNoCS CComSingleThreadModel を参照します。

パブリック メソッド

名前 説明
CComSingleThreadModel::Decrement 指定された変数の値をデクリメントします。 この実装はスレッドセーフではありません。
CComSingleThreadModel::Increment 指定された変数の値をインクリメントします。 この実装はスレッドセーフではありません。

解説

CComSingleThreadModel には、変数の値をインクリメントおよびデクリメントするためのメソッドが用意されています。 CComMultiThreadModelCComMultiThreadModelNoCS とは異なり、これらのメソッドはスレッドセーフではありません。

通常、CComSingleThreadModel を使用するには、2 つの typedef 名のうち 1 つ (CComObjectThreadModel または CComGlobalsThreadModel のどちらか) を使用します。 各 typedef で参照されるクラスは、次の表に示すように、使うスレッド モデルに依存します。

typedef 単一スレッド モデル アパートメント スレッド モデル フリー スレッド モデル
CComObjectThreadModel S S
CComGlobalsThreadModel S

S= CComSingleThreadModel、M= CComMultiThreadModel

CComSingleThreadModel 自体に 3 つの typedef 名が定義されています。 ThreadModelNoCS関連項目CComSingleThreadModelAutoCriticalSectionCriticalSection はクラス CComFakeCriticalSection を参照します。これは、クリティカル セクションの所有権の取得と解放に関連付けられた空のメソッドを備えています。

要件

ヘッダー: atlbase.h

CComSingleThreadModel::AutoCriticalSection

CComSingleThreadModel を使用する場合、typedef 名である AutoCriticalSection で参照されるのは、CComFakeCriticalSection クラスです。

typedef CComFakeCriticalSection AutoCriticalSection;

解説

CComFakeCriticalSection によってクリティカル セクションは提供されないため、そのメソッドでは何も行われません。

CComMultiThreadModel および CComMultiThreadModelNoCS には、AutoCriticalSection の定義が含まれています。 次の表は、スレッド モデル クラスと、AutoCriticalSection によって参照されるクリティカル セクション クラスとのリレーションシップを示しています。

定義されるクラス 参照されるクラス
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComAutoCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

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

CComMultiThreadModel::AutoCriticalSection」を参照してください。

CComSingleThreadModel::CriticalSection

CComSingleThreadModel を使用する場合、typedef 名である CriticalSection で参照されるのは、CComFakeCriticalSection クラスです。

typedef CComFakeCriticalSection CriticalSection;

解説

CComFakeCriticalSection によってクリティカル セクションは提供されないため、そのメソッドでは何も行われません。

CComMultiThreadModel および CComMultiThreadModelNoCS には、CriticalSection の定義が含まれています。 次の表は、スレッド モデル クラスと、CriticalSection によって参照されるクリティカル セクション クラスとのリレーションシップを示しています。

定義されるクラス 参照されるクラス
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

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

CComMultiThreadModel::AutoCriticalSection」を参照してください。

CComSingleThreadModel::Decrement

この静的関数は、p が指す変数の値をデクリメントします。

static ULONG WINAPI Decrement(LPLONG p) throw();

パラメーター

P
[入力] デクリメントする変数を指すポインター。

戻り値

デクリメントの結果。

CComSingleThreadModel::Increment

この静的関数は、p が指す変数の値をインクリメントします。

static ULONG WINAPI Increment(LPLONG p) throw();

パラメーター

P
[入力] インクリメントする変数を指すポインター。

戻り値

インクリメントの結果。

CComSingleThreadModel::ThreadModelNoCS

CComSingleThreadModel を使用する場合、typedef 名である ThreadModelNoCS によって参照されるのは、CComSingleThreadModel だけです。

typedef CComSingleThreadModel ThreadModelNoCS;

解説

CComMultiThreadModel および CComMultiThreadModelNoCS には、ThreadModelNoCS の定義が含まれています。 次の表は、スレッド モデル クラスと、ThreadModelNoCS によって参照されるクラスとのリレーションシップを示しています。

定義されるクラス 参照されるクラス
CComSingleThreadModel CComSingleThreadModel
CComMultiThreadModel CComMultiThreadModelNoCS
CComMultiThreadModelNoCS CComMultiThreadModelNoCS

CComMultiThreadModel::AutoCriticalSection」を参照してください。

関連項目

クラスの概要