CComGlobalsThreadModel
使用するスレッド モデルに関係なく適切なスレッド モデルのメソッドを呼び出します。
#if defined( _ATL_SINGLE_THREADED )
typedef CComSingleThreadModel CComGlobalsThreadModel;
#elif defined( _ATL_APARTMENT_THREADED )
typedef CComMultiThreadModel CComGlobalsThreadModel;
#elif defined( _ATL_FREE_THREADED )
typedef CComMultiThreadModel CComGlobalsThreadModel;
#else
#pragma message ("No global threading model defined")
#endif
解説
アプリケーションで使用するスレッド モデルで typedef の名前 CComGlobalsThreadModel は CComSingleThreadModel か CComMultiThreadModelを参照します。これらのクラスは、クリティカル セクションのクラスを参照する typedef の追加の名前を指定します。
[!メモ]
CComGlobalsThreadModel は、参照クラス CComMultiThreadModelNoCS。
CComGlobalsThreadModel を使用して特定のスレッド モデルのクラスの指定したなくなります。使用するスレッド モデルに関係なく適切なメソッドが呼び出されます。
CComGlobalsThreadModelに加えて、ATL は typedef の名前 CComObjectThreadModelを提供します。各 typedef によって参照されるクラスは、次の表に示すように、使用するスレッド モデルによって異なります:
typedef |
一つのスレッド |
アパートメント スレッド |
free なスレッド |
---|---|---|---|
CComObjectThreadModel |
S |
S |
M |
CComGlobalsThreadModel |
S |
M |
M |
S=CComSingleThreadModel; M=CComMultiThreadModel
単一のオブジェクト クラス内の CComObjectThreadModel を使用します。プログラムでグローバルに使用できる、または複数のスレッド間でモジュールでリソースを保護するオブジェクトで CComGlobalsThreadModel を使用します。
必要条件
atlbase.hHeader: