Share via


Çalışan Modeli

Çalışan arketipine uyan sınıflar, iş parçacığı havuzunda kuyruğa alınan iş öğelerini işlemek için kod sağlar.

Uygulama

Bu arketipe uygun bir sınıf uygulamak için sınıfın aşağıdaki özellikleri sağlaması gerekir:

Yöntem Açıklama
Initialize Yürüt'e herhangi bir istek geçirilmeden önce çalışan nesnesini başlatmak için çağrılır.
Execute bir iş öğesini işlemek için çağrılır.
Terminate Tüm istekler Yürüt'e geçirildikten sonra çalışan nesnesini başlatmak için çağrılır.
Typedef Tanım
Requesttype Çalışan sınıfı tarafından işlenebilen iş öğesi türü için bir typedef.

Tipik bir çalışan sınıfı şuna benzer:

class CMyWorker
{
public:
   typedef MyRequestType RequestType;

   BOOL Initialize(void* pvWorkerParam);

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

   void Terminate(void* pvWorkerParam);
};

Mevcut Uygulamalar

Bu sınıflar şu arketipe uygundur:

Sınıf Tanım
CNonStatelessWorker İş parçacığı havuzundan istekleri alır ve her istek için oluşturulan ve yok edilen bir çalışan nesnesine geçirir.

Gereksinim duyduğunuz veri alt kümesini bulmak için

Bu şablon parametreleri sınıfın bu arketipe uymasını bekler:

Parametre adı Kullanan
Çalışan Cthreadpool
Çalışan CNonStatelessWorker

Gereksinimler

Üst bilgi: atlutil.h

WorkerArchetype::Execute

bir iş öğesini işlemek için çağrılır.

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

Parametreler

Istek
İşlenecek iş öğesi. İş öğesi ile aynı türdedir RequestType.

pvWorkerParam
Çalışan sınıfı tarafından anlaşılan özel bir parametre. ayrıca ve Terminateöğesine WorkerArchetype::Initialize de geçirildi.

pOverlapped
İş öğelerinin kuyruğa alındığı kuyruğu oluşturmak için kullanılan ÇAKıŞAN yapıya yönelik bir işaretçi.

WorkerArchetype::Initialize

öğesine herhangi bir istek geçirilmeden önce çalışan nesnesini başlatmak için WorkerArchetype::Executeçağrılır.

BOOL Initialize(void* pvParam) throw();

Parametreler

pvParam
Çalışan sınıfı tarafından anlaşılan özel bir parametre. ayrıca ve WorkerArchetype::Executeöğesine WorkerArchetype::Terminate de geçirildi.

İade Değeri

Başarılı olduğunda TRUE, hatada YANLIŞ döndürür.

WorkerArchetype::RequestType

Çalışan sınıfı tarafından işlenebilen iş öğesi türü için bir typedef.

typedef MyRequestType RequestType;

Açıklamalar

Bu türün ilk parametresi WorkerArchetype::Execute olarak kullanılması ve bir ULONG_PTR'a ve ULONG_PTR atanabilmesi gerekir.

WorkerArchetype::Terminate

Tüm istekler 'e geçirildikten sonra çalışan nesnesini başlatmayı kaldırmaya WorkerArchetype::Executeçağrıldı.

void Terminate(void* pvParam) throw();

Parametreler

pvParam
Çalışan sınıfı tarafından anlaşılan özel bir parametre. ayrıca ve WorkerArchetype::Executeöğesine WorkerArchetype::Initialize de geçirildi.

Ayrıca bkz.

Kavramlar
ATL COM Masaüstü Bileşenleri