Archetyp pracovního procesu
Třídy, které odpovídají archetypu pracovního procesu , poskytují kód pro zpracování pracovních položek zařazených do fronty ve fondu vláken.
Implementace
Chcete-li implementovat třídu, která odpovídá tomuto archetypu, třída musí poskytovat následující funkce:
Metoda | Popis |
---|---|
Initialize | Volána k inicializaci pracovního objektu před předáním jakýchkoli požadavků ke spuštění. |
Execute | Volá se ke zpracování pracovní položky. |
Terminate | Volána k zrušení inicializace pracovního objektu po předání všech požadavků ke spuštění. |
Typedef | Popis |
---|---|
Requesttype | Definice typu pracovní položky, kterou lze zpracovat třídou pracovního procesu. |
Typická třída pracovního procesu vypadá takto:
class CMyWorker
{
public:
typedef MyRequestType RequestType;
BOOL Initialize(void* pvWorkerParam);
void Execute(MyRequestType request, void* pvWorkerParam, OVERLAPPED* pOverlapped);
void Terminate(void* pvWorkerParam);
};
Existující implementace
Tyto třídy odpovídají tomuto archetypu:
Třída | Popis |
---|---|
CNonStatelessWorker | Přijímá požadavky z fondu vláken a předává je do pracovního objektu, který je vytvořen a zničen pro každý požadavek. |
Použít
Tyto parametry šablony očekávají, že třída bude odpovídat tomuto archetypu:
Název parametru | Používá |
---|---|
Pracovní podproces | CThreadPool |
Pracovní podproces | CNonStatelessWorker |
Požadavky
Hlavička: atlutil.h
WorkerArchetype::Execute
Volá se ke zpracování pracovní položky.
void Execute(
RequestType request,
void* pvWorkerParam,
OVERLAPPED* pOverlapped);
Parametry
Požadavek
Pracovní položka, kterou chcete zpracovat. Pracovní položka je stejného typu jako RequestType
.
pvWorkerParam
Vlastní parametr rozumí třídě pracovního procesu. Také předán WorkerArchetype::Initialize
do a Terminate
.
pOverlapped
Ukazatel na překrývající se strukturu sloužící k vytvoření fronty, na které byly pracovní položky zařazeny do fronty.
WorkerArchetype::Initialize
Volána k inicializaci pracovního objektu před předáním jakýchkoli požadavků .WorkerArchetype::Execute
BOOL Initialize(void* pvParam) throw();
Parametry
pvParam
Vlastní parametr rozumí třídě pracovního procesu. Také předán WorkerArchetype::Terminate
do a WorkerArchetype::Execute
.
Vrácená hodnota
Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.
WorkerArchetype::RequestType
Definice typu pracovní položky, kterou lze zpracovat třídou pracovního procesu.
typedef MyRequestType RequestType;
Poznámky
Tento typ musí být použit jako první parametr WorkerArchetype::Execute
a musí být schopný přetypovat do a z ULONG_PTR.
WorkerArchetype::Terminate
Volána k zrušení inicializace pracovního objektu po předání všech požadavků ).WorkerArchetype::Execute
void Terminate(void* pvParam) throw();
Parametry
pvParam
Vlastní parametr rozumí třídě pracovního procesu. Také předán WorkerArchetype::Initialize
do a WorkerArchetype::Execute
.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro