Поделиться через


Класс CNonStatelessWorker

Получает запросы из пула потоков и передает их в рабочий объект, созданный и уничтоженный при каждом запросе.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

template <class Worker>
class CNonStatelessWorker

Параметры

Рабочий
Класс рабочего потока, соответствующий архетипу рабочей роли, подходящему для обработки запросов в очереди в CThreadPool.

Участники

Общедоступные определения типов

Имя Описание
CNonStatelessWorker::RequestType Реализация WorkerArchetype::RequestType.

Открытые методы

Имя Описание
CNonStatelessWorker::Execute Реализация WorkerArchetype::Execute.
CNonStatelessWorker::Initialize Реализация WorkerArchetype::Initialize.
CNonStatelessWorker::Terminate Реализация WorkerArchetype::Terminate.

Замечания

Этот класс является простым рабочим потоком для использования с CThreadPool. Этот класс не предоставляет собственные возможности обработки запросов. Вместо этого он создает экземпляр одного экземпляра рабочей роли на запрос и делегирует реализацию своих методов в этот экземпляр.

Преимуществом этого класса является удобный способ изменения модели состояния для существующих классов рабочих потоков. CThreadPool создаст одну рабочую роль в течение всего времени существования потока, поэтому если рабочий класс содержит состояние, он будет хранить его в нескольких запросах. Просто упаковав этот класс в CNonStatelessWorker шаблон перед его использованием CThreadPool, время существования рабочей роли и состояния, которое он содержит, ограничено одним запросом.

Требования

Заголовок: atlutil.h

CNonStatelessWorker::Execute

Реализация WorkerArchetype::Execute.

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

Замечания

Этот метод создает экземпляр рабочего класса в стеке и вызывает инициализацию этого объекта. Если инициализация выполнена успешно, этот метод также вызывает Execute и Terminate в одном объекте.

CNonStatelessWorker::Initialize

Реализация WorkerArchetype::Initialize.

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

Возвращаемое значение

Всегда возвращает значение TRUE.

Замечания

Этот класс не выполняет инициализацию в Initialize.

CNonStatelessWorker::RequestType

Реализация WorkerArchetype::RequestType.

typedef Worker::RequestType RequestType;

Замечания

Этот класс обрабатывает тот же тип рабочего элемента, что и класс, используемый для параметра шаблона рабочей роли . Дополнительные сведения см. в обзоре CNonStatelessWorker.

CNonStatelessWorker::Terminate

Реализация WorkerArchetype::Terminate.

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

Замечания

Этот класс не выполняет очистку.Terminate

См. также

Класс CThreadPool
Рабочий архетип
Классы