Partager via


CComAutoThreadModule, classe

As of ATL 7,0, CComAutoThreadModule est obsolète : consultez Classes de module ATL pour plus de détails.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.

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

Paramètres

Membres

Méthodes

CreateInstance

Sélectionne un thread puis crée un objet dans le MTA associé.

GetDefaultThreads

(Statique) calcule dynamiquement le nombre de threads pour le package en fonction de le nombre de processeurs.

Init

Crée les threads du module.

Verrouiller

Incrémente le nombre de verrous sur le package et sur le thread actuel.

Déverrouillez

Décrémente le nombre de verrous sur le package et sur le thread actuel.

Membres de données

Membres de données

dwThreadID

Contient l'identificateur du thread actuel.

m_Allocator

Gère la sélection de thread.

m_nThreads

Contient le nombre de threads dans le module.

m_pApartments

Gère les apartments du module.

Notes

Notes

Cette classe est obsolète, après avoir été remplacé par CAtlAutoThreadModule et les classes dérivées par CAtlModule .Les informations qui suivent utilisent des versions plus anciennes ATL.

CComAutoThreadModule dérive de CComModule pour implémenter un serveur COM regroupé par thread, de modèle cloisonné pour EXE et des services windows. CComAutoThreadModule utilise CComApartment pour gérer un " apartment " pour chaque thread dans le module.

Dérivez votre package d' CComAutoThreadModule lorsque vous souhaitez créer des objets de plusieurs apartments. Vous devez également inclure la macro de DECLARE_CLASSFACTORY_AUTO_THREAD dans la définition de classe de votre objet pour spécifier CComClassFactoryAutoThread comme une fabrique de classe.

Par défaut, ATL COM AppWizard (Assistant Projet ATL dans Visual Studio .NET) dérivera votre package d' CComModule. Pour utiliser CComAutoThreadModule, modifiez la définition de classe. Par exemple :

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;
};

Hiérarchie d'héritage

_ATL_MODULE

CAtlModule

IAtlAutoThreadModule

CAtlModuleT

CAtlAutoThreadModuleT

CComModule

CComAutoThreadModule

Configuration requise

Header: atlbase.h

Voir aussi

Référence

Classes de module ATL

Autres ressources

Vue d'ensemble de la classe ATL