Klasa CNonStatelessWorker

Odbiera żądania z puli wątków i przekazuje je do obiektu procesu roboczego, który jest tworzony i niszczony na każdym żądaniu.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

template <class Worker>
class CNonStatelessWorker

Parametry

Pracownik
Klasa wątków procesu roboczego zgodna z archetypem procesu roboczego odpowiednia do obsługi żądań w kolejce w puli CThreadPool.

Elementy członkowskie

Definicje typów publicznych

Nazwa/nazwisko opis
CNonStatelessWorker::RequestType Implementacja elementu WorkerArchetype::RequestType.

Metody publiczne

Nazwa/nazwisko opis
CNonStatelessWorker::Execute Implementacja elementu WorkerArchetype::Execute.
CNonStatelessWorker::Initialize Implementacja elementu WorkerArchetype::Initialize.
CNonStatelessWorker::Terminate Implementacja elementu WorkerArchetype::Terminate.

Uwagi

Ta klasa jest prostym wątkiem roboczym do użycia z CThreadPool. Ta klasa nie udostępnia własnych możliwości obsługi żądań. Zamiast tego tworzy wystąpienie procesu roboczego na żądanie i deleguje implementację jego metod do tego wystąpienia.

Zaletą tej klasy jest to, że zapewnia wygodny sposób zmiany modelu stanu dla istniejących klas wątków procesu roboczego. CThreadPool Utworzy pojedynczy proces roboczy dla okresu istnienia wątku, więc jeśli klasa procesu roboczego przechowuje stan, będzie przechowywać go w wielu żądaniach. Po prostu opakowując klasę w szablonie CNonStatelessWorker przed jej użyciem z elementem CThreadPool, okres istnienia procesu roboczego i stan, który jest przechowywany, jest ograniczony do pojedynczego żądania.

Wymagania

Nagłówek: atlutil.h

CNonStatelessWorker::Execute

Implementacja elementu WorkerArchetype::Execute.

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

Uwagi

Ta metoda tworzy wystąpienie klasy Worker na stosie i wywołuje metodę Initialize na tym obiekcie. Jeśli inicjowanie zakończy się pomyślnie, ta metoda wywołuje również metodę Execute i Terminate w tym samym obiekcie.

CNonStatelessWorker::Initialize

Implementacja elementu WorkerArchetype::Initialize.

BOOL Initialize(void* /* pvParam */) throw();

Wartość zwracana

Zawsze zwraca wartość TRUE.

Uwagi

Ta klasa nie wykonuje żadnej inicjalizacji w pliku Initialize.

CNonStatelessWorker::RequestType

Implementacja elementu WorkerArchetype::RequestType.

typedef Worker::RequestType RequestType;

Uwagi

Ta klasa obsługuje ten sam typ elementu roboczego co klasa używana dla parametru szablonu procesu roboczego. Aby uzyskać szczegółowe informacje, zobacz CNonStatelessWorker Overview (Omówienie usługi CNonStatelessWorker).

CNonStatelessWorker::Terminate

Implementacja elementu WorkerArchetype::Terminate.

void Terminate(void* /* pvParam */) throw();

Uwagi

Ta klasa nie wykonuje czyszczenia w pliku Terminate.

Zobacz też

Klasa CThreadPool
Archetyp procesu roboczego
Klasy