CComSingleThreadModel クラス
このクラスには、変数の値をインクリメントおよびデクリメントするためのメソッドが用意されています。
構文
class CComSingleThreadModel
メンバー
パブリック typedef
名前 | 説明 |
---|---|
CComSingleThreadModel::AutoCriticalSection | CComFakeCriticalSection クラスを参照します。 |
CComSingleThreadModel::CriticalSection | CComFakeCriticalSection クラスを参照します。 |
CComSingleThreadModel::ThreadModelNoCS | CComSingleThreadModel を参照します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CComSingleThreadModel::Decrement | 指定された変数の値をデクリメントします。 この実装はスレッドセーフではありません。 |
CComSingleThreadModel::Increment | 指定された変数の値をインクリメントします。 この実装はスレッドセーフではありません。 |
解説
CComSingleThreadModel
には、変数の値をインクリメントおよびデクリメントするためのメソッドが用意されています。 CComMultiThreadModel や CComMultiThreadModelNoCS とは異なり、これらのメソッドはスレッドセーフではありません。
通常、CComSingleThreadModel
を使用するには、2 つの typedef
名のうち 1 つ (CComObjectThreadModel または CComGlobalsThreadModel のどちらか) を使用します。 各 typedef
で参照されるクラスは、次の表に示すように、使うスレッド モデルに依存します。
typedef | 単一スレッド モデル | アパートメント スレッド モデル | フリー スレッド モデル |
---|---|---|---|
CComObjectThreadModel |
S | S | 月 |
CComGlobalsThreadModel |
S | 月 | 月 |
S= CComSingleThreadModel
、M= CComMultiThreadModel
CComSingleThreadModel
自体に 3 つの typedef
名が定義されています。 ThreadModelNoCS
関連項目CComSingleThreadModel
。 AutoCriticalSection
と CriticalSection
はクラス 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」を参照してください。