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
.