CComAutoThreadModule Sınıfı
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
template <class ThreadAllocator = CComSimpleThreadAllocator>
class CComAutoThreadModule : public CComModule
Parametreler
ThreadAllocator
[in] İş parçacığı seçimini yöneten sınıf. Varsayılan değer CComSimpleThreadAllocator'dır.
Üyeler
Yöntemler
İşlev | Açıklama |
---|---|
CreateInstance | Bir iş parçacığı seçer ve ardından ilişkili dairede bir nesne oluşturur. |
GetDefaultThreads | (Statik) İşlemci sayısına göre modül için iş parçacığı sayısını dinamik olarak hesaplar. |
Init | Modülün iş parçacıklarını oluşturur. |
Kilitle | Modüldeki ve geçerli iş parçacığındaki kilit sayısını artırır. |
Kilidi açmak | Modüldeki ve geçerli iş parçacığındaki kilit sayısını azaltma. |
Veri Üyeleri
Veri üyesi | Açıklama |
---|---|
dwThreadID | Geçerli iş parçacığının tanımlayıcısını içerir. |
m_Allocator | İş parçacığı seçimini yönetir. |
m_nThreads | Modüldeki iş parçacığı sayısını içerir. |
m_pApartments | Modülün dairelerini yönetir. |
Açıklamalar
Not
Bu sınıf eski, CAtlAutoThreadModule ve CAtlModule türetilmiş sınıfları tarafından değiştirilmiştir. Aşağıdaki bilgiler, ATL'nin eski sürümleriyle kullanım içindir.
CComAutoThreadModule
CComModule'den türetilir ve EXE'ler ve Windows hizmetleri için iş parçacığı havuzuna alınmış, apartman modeli com sunucusu uygular. CComAutoThreadModule
modüldeki her iş parçacığı için bir daireyi yönetmek için CComApartment kullanır.
Birden çok dairede nesne oluşturmak istediğinizde modülünüzü CComAutoThreadModule
türetebilirsiniz. Sınıf fabrikası olarak CComClassFactoryAutoThread belirtmek için nesnenizin sınıf tanımına DECLARE_CLASSFACTORY_AUTO_THREAD makroyu da eklemeniz gerekir.
Varsayılan olarak, ATL COM AppWizard (Visual Studio .NET'teki ATL Proje Sihirbazı) modülünüzü adresinden CComModule
türetecektir. kullanmak CComAutoThreadModule
için sınıf tanımını değiştirin. Örneğin:
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;
};
Devralma Hiyerarşisi
IAtlAutoThreadModule
CComAutoThreadModule
Gereksinimler
Üst bilgi: atlbase.h
CComAutoThreadModule::CreateInstance
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
HRESULT CreateInstance(
void* pfnCreateInstance,
REFIID riid,
void** ppvObj);
Parametreler
pfnCreateInstance
[in] Oluşturucu işlevinin işaretçisi.
riid
[in] İstenen arabirimin IID değeri.
ppvObj
[out] riid tarafından tanımlanan arabirim işaretçisine ilişkin bir işaretçi. Nesne bu arabirimi desteklemiyorsa, ppvObj NULL olarak ayarlanır.
Dönüş Değeri
Standart bir HRESULT değeri.
Açıklamalar
Bir iş parçacığı seçer ve ardından ilişkili dairede bir nesne oluşturur.
CComAutoThreadModule::d wThreadID
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
DWORD dwThreadID;
Açıklamalar
Geçerli iş parçacığının tanımlayıcısını içerir.
CComAutoThreadModule::GetDefaultThreads
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
static int GetDefaultThreads();
Dönüş Değeri
EXE modülünde oluşturulacak iş parçacığı sayısı.
Açıklamalar
Bu statik işlev, exe modülü için en fazla iş parçacığı sayısını işlemci sayısına göre dinamik olarak hesaplar. Varsayılan olarak, bu dönüş değeri iş parçacıklarını oluşturmak için Init yöntemine geçirilir.
CComAutoThreadModule::Init
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL,
int nThreads = GetDefaultThreads());
Parametreler
p
[in] Nesne eşleme girdileri dizisinin işaretçisi.
h
[in] HINSTANCE veya WinMain
öğesine DLLMain
geçirildi.
plibid
[in] Projeyle ilişkilendirilmiş tür kitaplığının LIBID işaretçisi.
nThreads
[in] Oluşturulacak iş parçacığı sayısı. Varsayılan olarak, nThreads GetDefaultThreads tarafından döndürülen değerdir.
Açıklamalar
Veri üyelerini başlatır ve nThreads tarafından belirtilen iş parçacığı sayısını oluşturur.
CComAutoThreadModule::Lock
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
LONG Lock();
Dönüş Değeri
Tanılama veya test için yararlı olabilecek bir değer.
Açıklamalar
Modülün ve geçerli iş parçacığının kilit sayısı üzerinde atomik bir artış gerçekleştirir. CComAutoThreadModule
modül kilit sayısını kullanarak herhangi bir istemcinin modüle erişip erişmediğini belirler. Geçerli iş parçacığındaki kilit sayısı istatistiksel amaçlar için kullanılır.
CComAutoThreadModule::m_Allocator
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
ThreadAllocator m_Allocator;
Açıklamalar
İş parçacığı seçimini yöneten nesne. Varsayılan olarak, ThreadAllocator
sınıf şablonu parametresi CComSimpleThreadAllocator'dır.
CComAutoThreadModule::m_nThreads
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
int m_nThreads;
Açıklamalar
EXE modülündeki iş parçacığı sayısını içerir. Init çağrıldığında nThreads m_nThreads
parametre değerine ayarlanır. Her iş parçacığının ilişkili dairesi bir CComApartment nesnesi tarafından yönetilir.
CComAutoThreadModule::m_pApartments
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
CComApartment* m_pApartments;
Açıklamalar
Her biri modüldeki bir daireyi yöneten bir CComApartment nesneleri dizisine işaret eder. Dizideki öğelerin sayısı, m_nThreads üyesini temel alır.
CComAutoThreadModule::Unlock
ATL 7.0 CComAutoThreadModule
itibarıyla kullanım dışıdır: Daha fazla ayrıntı için bkz . ATL Modülü Sınıfları .
LONG Unlock();
Dönüş Değeri
Tanılama veya test için yararlı olabilecek bir değer.
Açıklamalar
Modülün ve geçerli iş parçacığının kilit sayısı üzerinde atomik bir düşüş gerçekleştirir. CComAutoThreadModule
modül kilit sayısını kullanarak herhangi bir istemcinin modüle erişip erişmediğini belirler. Geçerli iş parçacığındaki kilit sayısı istatistiksel amaçlar için kullanılır.
Modül kilit sayısı sıfıra ulaştığında modül kaldırılabilir.