Класс CNonStatelessWorker
Получает запросы из пула потоков и передает их в рабочий объект, созданный и уничтоженный при каждом запросе.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
template <class Worker>
class CNonStatelessWorker
Параметры
Рабочая роль
Класс рабочего потока, соответствующий архетипу рабочей роли, подходящему для обработки запросов в очереди в CThreadPool.
Участники
Общедоступные определения типов
Имя | Описание |
---|---|
CNonStatelessWorker::RequestType | Реализация WorkerArchetype::RequestType. |
Открытые методы
Замечания
Этот класс является простым рабочим потоком для использования с 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