Sdílet prostřednictvím


Třída CThreadPool

Tato třída poskytuje fondu pracovních podprocesů, které zpracovávají fronty pracovních položek.

template < 
   class Worker, 
   class ThreadTraits = DefaultThreadTraits 
> 
class CThreadPool : 
   public IThreadPoolConfig

Parametry

  • Pracovník
    Třídy, které odpovídají pracovník archetype poskytující kód slouží ke zpracování pracovních položek ve frontě na fondu podprocesů.

  • ThreadTraits
    Třída poskytující funkce pro vytváření podprocesy ve fondu.

Členy

Veřejné konstruktory

Název

Description

CThreadPool::CThreadPool

Konstruktor fondu podprocesů.

CThreadPool:: ~ CThreadPool

Destructor fondu podprocesů.

Veřejné metody

Název

Description

CThreadPool::AddRef

Provádění IUnknown::AddRef .

CThreadPool::GetNumThreads

Volání této metody ve fondu získat počet podprocesů.

CThreadPool::GetQueueHandle

Volání této metody získání popisovače vstupně-výstupního portu dokončení pro fronty pracovních položek.

CThreadPool::GetSize

Volání této metody ve fondu získat počet podprocesů.

CThreadPool::GetTimeout

Volání této metody získání maximální dobu v milisekundách čekání fondu podprocesů pro podproces vypnutí.

CThreadPool::Initialize

Volání této metody inicializace fondu podprocesů.

CThreadPool::QueryInterface

Provádění IUnknown::QueryInterface.

CThreadPool::QueueRequest

Volání této metody do fronty pracovní položku zpracování podprocesy ve fondu.

CThreadPool::Release

Provádění IUnknown::Release .

CThreadPool::SetSize

Volání této metody nastavení počtu podprocesů ve fondu.

CThreadPool::SetTimeout

Volání této metody můžete nastavit maximální dobu v milisekundách čekání fondu podprocesů pro podproces vypnutí.

CThreadPool::Shutdown

Volání této metody ukončení fondu podprocesů.

Poznámky

Ve fondu podprocesů vytvořených a zničeno při inicializaci, velikost nebo vypnutí fondu.Instance třídy pracovník bude vytvořen v zásobníku každý pracovní podproces fondu.Každá instance bude živé dobu životnosti podprocesu.

Okamžitě po vytvoření podprocesu pracovník:: Initialize bude volat objekt přidružený tento podproces.Bezprostředně před zničením podproces pracovník:: Terminate bude volána.Obě metody musíte souhlasit void * argument.Hodnota tohoto argumentu je předána prostřednictvím fondu podprocesů pvWorkerParam parametr CThreadPool::Initialize.

Kdy pracovních položek ve frontě a pracovních podprocesů k dispozici pro práci, bude pracovní podproces pull položky fronty a volání spouštět metodu pracovník objekt pro toto vlákno.Tři položky jsou poté předán metodě: položky z fronty stejné pvWorkerParam předán pracovník:: Initialize a pracovník::Terminatea ukazatel na OVERLAPPED struktura používaná pro frontu vstupně-výstupní port dokončení.

Pracovník třídy deklaruje typ položek, které budou frontě na fondu podprocesů poskytnutím typedef, pracovník::RequestType.Tento typ musí být schopen se odevzdaných do a z ULONG_PTR.

Příkladem pracovník je třída Třída CNonStatelessWorker.

Hierarchii dědičnosti

IUnknown

IThreadPoolConfig

CThreadPool

Požadavky

Záhlaví: atlutil.h

Viz také

Referenční dokumentace

Rozhraní IThreadPoolConfig

DefaultThreadTraits

Další zdroje

Třídy ATL