CComAutoThreadModule-Klasse
Ab ATL 7.0 ist CComAutoThreadModule veraltet: finden Sie unter ATL-Modul-Klassen für weitere Details.
Wichtig |
---|
Diese Klasse und ihre Member können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen. |
template<
class ThreadAllocator= CComSimpleThreadAllocator
>
class CComAutoThreadModule :
public CComModule
Parameter
- ThreadAllocator
[in] Die Klasse, die Thread-Auswahl verwaltet.Der Standardwert ist CComSimpleThreadAllocator.
Mitglieder
Methoden
Wählt einen Thread aus und erstellt dann ein Objekt im zugeordneten Apartment. |
|
(Statisch) dynamisch berechnet die Anzahl der Threads für das Modul auf Grundlage der Anzahl der Prozessoren. |
|
Erstellt die Threads des Moduls. |
|
Inkrementiert die Sperrenanzahl auf dem Modul und im aktuellen Thread. |
|
Dekrementiert die Sperrenanzahl auf dem Modul und im aktuellen Thread. |
Datenmember
Datenmember
Enthält den Bezeichner des aktuellen Threads. |
|
Verwaltet Thread-Auswahl. |
|
Enthält die Anzahl der Threads im Modul. |
|
Verwaltet die Apartments des Moduls. |
Hinweise
Hinweis |
---|
Diese Klasse ist veraltet, nachdem sie durch die CAtlAutoThreadModule und CAtlModule abgeleiteten Klassen sie ersetzt wurde.Die Informationen, die erfolgreich ist, sind für die Verwendung mit älteren Versionen von ATL. |
CComAutoThreadModule wird von abgeleitet CComModule, um einen, ApartmentModell COM-Server mit Threadpool für EXE-Dateien und Windows-Dienste zu implementieren.CComAutoThreadModule verwendet CComApartment, um ein Apartment für jeden Thread im Modul zu verwalten.
Leiten Sie das Modul von CComAutoThreadModule, wenn Sie Objekte in mehreren Apartments erstellen möchten.Sie müssen das DECLARE_CLASSFACTORY_AUTO_THREAD-Makro in der Klassendefinition des Objekts auch einschließen, um CComClassFactoryAutoThread als die Klassenfactory anzugeben.
Standardmäßig berechnet der Anwendungs-Assistent ATL COM (der ATL-Projekt-Assistent in Visual Studio .NET.) das Modul von CComModule.Um CComAutoThreadModule zu verwenden, ändern Sie die Klassendefinition.Beispiel:
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;
};
Vererbungshierarchie
IAtlAutoThreadModule
CComAutoThreadModule
Anforderungen
Header: atlbase.h