Ç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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin