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 |
---|---|
Konstruktor fondu podprocesů. |
|
Destructor fondu podprocesů. |
Veřejné metody
Název |
Description |
---|---|
Provádění IUnknown::AddRef . |
|
Volání této metody ve fondu získat počet podprocesů. |
|
Volání této metody získání popisovače vstupně-výstupního portu dokončení pro fronty pracovních položek. |
|
Volání této metody ve fondu získat počet podprocesů. |
|
Volání této metody získání maximální dobu v milisekundách čekání fondu podprocesů pro podproces vypnutí. |
|
Volání této metody inicializace fondu podprocesů. |
|
Provádění IUnknown::QueryInterface. |
|
Volání této metody do fronty pracovní položku zpracování podprocesy ve fondu. |
|
Provádění IUnknown::Release . |
|
Volání této metody nastavení počtu podprocesů ve fondu. |
|
Volání této metody můžete nastavit maximální dobu v milisekundách čekání fondu podprocesů pro podproces vypnutí. |
|
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
CThreadPool
Požadavky
Záhlaví: atlutil.h