次の方法で共有


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 の名前 CComGlobalsThreadModelCComSingleThreadModelCComMultiThreadModelを参照します。これらのクラスは、クリティカル セクションのクラスを参照する 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:

参照

関連項目

CComObjectRootEx クラス

その他の技術情報

ATL クラスの概要

ATL typedef