次の方法で共有


CComAutoThreadModule クラス

ATL 7.0 では、CComAutoThreadModule は互換性のために残されています: ATL モジュール クラス を詳細については、" "を参照してください。

重要

このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。

template< 
class ThreadAllocator= CComSimpleThreadAllocator  
> 
class CComAutoThreadModule : 
public CComModule

パラメーター

メンバー

メソッド

CreateInstance

スレッドを選択し、関連付けられているアパートメントのオブジェクトを作成します。

GetDefaultThreads

(静的) 動的にプロセッサ数に基づいてモジュールのスレッド数を計算します。

Init

モジュールのスレッドを作成します。

ロック

モジュールと現在のスレッドのロック カウントをインクリメントします。

ロックの解除

モジュールと現在のスレッドのロック カウントをデクリメントします。

データ メンバー

データ メンバー

dwThreadID

現在のスレッド識別子が含まれます。

m_Allocator

管理のスレッドの選択。

m_nThreads

モジュールでスレッド数が含まれます。

m_pApartments

モジュールのアパートメントを管理します。

解説

注意

このクラスは、互換性のために CAtlAutoThreadModuleCAtlModule の派生クラスに置き換えられます。次の情報は、ATL の旧リリースで使用するためです。

CComAutoThreadModuleCComModule から EXE および Windows サービスの、スレッドがプールされているアパートメント モデル COM サーバーを実装するために取得します。 CComAutoThreadModule は、モジュールの各スレッドのアパートメントの管理に CComApartment を使用します。

複数のアパートメントにオブジェクトを作成するときは、CComAutoThreadModule からモジュールを派生します。 また、オブジェクトのクラス定義にクラス ファクトリとして CComClassFactoryAutoThread を指定するに DECLARE_CLASSFACTORY_AUTO_THREAD のマクロを含める必要があります。

既定では、ATL COM AppWizard (Visual Studio .NET の ATL プロジェクト ウィザード) は CComModuleから、モジュールを取得します。 CComAutoThreadModuleを使用するには、クラス定義を変更します。 例:

class CMyModule : 
public CComAutoThreadModule<CComSimpleThreadAllocator>
{
public:
   LONG Unlock()
   {
      LONG l = CComAutoThreadModule<CComSimpleThreadAllocator>::Unlock();
      if (l == 0)
         PostThreadMessage(dwThreadID, WM_QUIT, 0, 0);
      return l;
   }

   DWORD dwThreadID;
};

継承階層

_ATL_MODULE

CAtlModule

IAtlAutoThreadModule

CAtlModuleT

CAtlAutoThreadModuleT

CComModule

CComAutoThreadModule

必要条件

atlbase.hHeader:

参照

関連項目

ATL モジュール クラス

その他の技術情報

ATL クラスの概要