Pracovní proces Archetype

Třídy, které odpovídají Archetype 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 Archetype, třída musí poskytovat následující funkce:

Metoda Popis
Inicializace Volá se, aby se inicializoval objekt pracovního procesu před předáním všech požadavků, které se mají provést.
Spuštěním Volá se, aby se zpracovala pracovní položka.
Ukončení Volá se, aby se zrušila inicializace objektu pracovního procesu po předání všech požadavků, které se mají provést.
Definic Popis
Třídy Definice typu pracovní položky, která může být zpracována 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 archetype:

Třída Popis
CNonStatelessWorker Přijímá žádosti z fondu vláken a předává je do objektu pracovního procesu, který je vytvořen a zničen pro každý požadavek.

Použití

Tyto parametry šablony očekávají, že třída bude vyhovovat tomuto archetype:

Název parametru Využíval
Zaměstnanec CThreadPool
Zaměstnanec CNonStatelessWorker

Požadavky

Záhlaví: atlutil. h

WorkerArchetype:: Execute

Volá se, aby se zpracovala pracovní položka.

void Execute(
    RequestType request,
    void* pvWorkerParam,
    OVERLAPPED* pOverlapped);

Parametry

Request
Pracovní položka, která má být zpracována. Pracovní položka je stejného typu jako RequestType .

pvWorkerParam
Vlastní parametr, který rozumí třída pracovního procesu. Také předán WorkerArchetype::Initialize a Terminate .

pOverlapped
Ukazatel na PŘEkrývající se strukturu použitou k vytvoření fronty, na které byly pracovní položky zařazeny do fronty.

WorkerArchetype:: Initialize

Volá se, aby se inicializoval objekt pracovního procesu, aby se předaly všechny požadavky WorkerArchetype::Execute .

BOOL Initialize(void* pvParam) throw();

Parametry

pvParam
Vlastní parametr, který rozumí třída pracovního procesu. Také předán WorkerArchetype::Terminate a WorkerArchetype::Execute .

Návratová hodnota

Vrátí hodnotu TRUE při úspěchu, což je FALSE při selhání.

WorkerArchetype:: RequestType

Definice typu pracovní položky, která může být zpracována 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řetypování do a z ULONG_PTR.

WorkerArchetype:: terminate

Volá se, aby se zrušila inicializace objektu pracovního procesu po předání všech požadavků do WorkerArchetype::Execute ).

void Terminate(void* pvParam) throw();

Parametry

pvParam
Vlastní parametr, který rozumí třída pracovního procesu. Také předán WorkerArchetype::Initialize a WorkerArchetype::Execute .

Viz také

Koncepty
Desktopové komponenty ATL objektů COM