Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu sınıf bir çalışan iş parçacığı oluşturur veya var olan bir iş parçacığını kullanır, bir veya daha fazla çekirdek nesne tutamacını bekler ve tanıtıcılardan biri işaretlendiğinde belirtilen istemci işlevini yürütür.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
template <class ThreadTraits = DefaultThreadTraits>
class CWorkerThread
Parametreler
ThreadTraits
CRTThreadTraits veya Win32ThreadTraits gibi iş parçacığı oluşturma işlevini sağlayan sınıf.
Üyeler
Korumalı Yapılar
| Veri Akışı Adı | Açıklama |
|---|---|
WorkerClientEntry |
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| CWorkerThread::CWorkerThread | Çalışan iş parçacığı için oluşturucu. |
| CWorkerThread::~CWorkerThread | Çalışan iş parçacığı için yıkıcı. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| CWorkerThread::AddHandle | Çalışan iş parçacığı tarafından tutulan listeye beklenebilir bir nesnenin tanıtıcısını eklemek için bu yöntemi çağırın. |
| CWorkerThread::AddTimer | Çalışan iş parçacığı tarafından tutulan listeye düzenli olarak beklenebilir bir zamanlayıcı eklemek için bu yöntemi çağırın. |
| CWorkerThread::GetThreadHandle | Çalışan iş parçacığının iş parçacığı tanıtıcısını almak için bu yöntemi çağırın. |
| CWorkerThread::GetThreadId | Çalışan iş parçacığının iş parçacığı kimliğini almak için bu yöntemi çağırın. |
| CWorkerThread::Initialize | Çalışan iş parçacığını başlatmak için bu yöntemi çağırın. |
| CWorkerThread::RemoveHandle | Bir tanıtıcıyı beklenebilir nesneler listesinden kaldırmak için bu yöntemi çağırın. |
| CWorkerThread::Shutdown | Çalışan iş parçacığını kapatmak için bu yöntemi çağırın. |
Açıklamalar
CWorkerThread kullanmak için
Bu sınıfın bir örneğini oluşturun.
CWorkerThread::Initialize öğesini çağır.
CWorkerThread::AddHandle öğesini bir çekirdek nesnesinin tutamacı ve IWorkerThreadClient uygulamasının işaretçisiyle çağırın.
- veya -
IWorkerThreadClient uygulamasının işaretçisiyle CWorkerThread::AddTimer'ı çağırın.
Tanıtıcı veya zamanlayıcı sinyalli olduğunda bazı eylemler gerçekleştirmek için IWorkerThreadClient::Execute uygulayın.
Bir nesneyi beklenebilir nesneler listesinden kaldırmak için CWorkerThread::RemoveHandle'ı çağırın.
İş parçacığını sonlandırmak için CWorkerThread::Shutdown öğesini çağırın.
Gereksinimler
Üst bilgi: atlutil.h
CWorkerThread::AddHandle
Çalışan iş parçacığı tarafından tutulan listeye beklenebilir bir nesnenin tanıtıcısını eklemek için bu yöntemi çağırın.
HRESULT AddHandle(
HANDLE hObject,
IWorkerThreadClient* pClient,
DWORD_PTR dwParam) throw();
Parametreler
hObject
Beklenebilir bir nesnenin tutamacı.
pClient
Tanıtıcı işaretlendiğinde çağrılacak nesnedeki IWorkerThreadClient arabiriminin işaretçisi.
dwParam
Tanıtıcı işaretlendiğinde IWorkerThreadClient::Execute'a geçirilecek parametre.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Açıklamalar
iWorkerThreadClient::Execute, tanıtıcı olan hObject işaretlendiğinde pClient aracılığıyla çağrılır.
CWorkerThread::AddTimer
Çalışan iş parçacığı tarafından tutulan listeye düzenli olarak beklenebilir bir zamanlayıcı eklemek için bu yöntemi çağırın.
HRESULT AddTimer(
DWORD dwInterval,
IWorkerThreadClient* pClient,
DWORD_PTR dwParam,
HANDLE* phTimer) throw();
Parametreler
dwInterval
Zamanlayıcının süresini milisaniye cinsinden belirtir.
pClient
Tanıtıcı işaretlendiğinde çağrılacak nesnedeki IWorkerThreadClient arabiriminin işaretçisi.
dwParam
Tanıtıcı işaretlendiğinde IWorkerThreadClient::Execute'a geçirilecek parametre.
phTimer
[out] Başarılı olduğunda yeni oluşturulan süreölçer için tanıtıcıyı alan HANDLE değişkeninin adresi.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Açıklamalar
Zamanlayıcı işaretlendiğinde IWorkerThreadClient::Execute pClient aracılığıyla çağrılır.
Zamanlayıcıyı kapatmak için zamanlayıcı tutamacını phTimer'dan CWorkerThread::RemoveHandle'a geçirin.
CWorkerThread::CWorkerThread
Oluşturucu.
CWorkerThread() throw();
CWorkerThread::~CWorkerThread
Yok edici.
~CWorkerThread() throw();
Açıklamalar
CWorkerThread::Shutdown'u çağırır.
CWorkerThread::GetThreadHandle
Çalışan iş parçacığının iş parçacığı tanıtıcısını almak için bu yöntemi çağırın.
HANDLE GetThreadHandle() throw();
Dönüş Değeri
Çalışan iş parçacığı başlatılmamışsa iş parçacığı tutamacını veya NULL değerini döndürür.
CWorkerThread::GetThreadId
Çalışan iş parçacığının iş parçacığı kimliğini almak için bu yöntemi çağırın.
DWORD GetThreadId() throw();
Dönüş Değeri
Çalışan iş parçacığı başlatılmamışsa iş parçacığı kimliğini veya NULL değerini döndürür.
CWorkerThread::Initialize
Çalışan iş parçacığını başlatmak için bu yöntemi çağırın.
HRESULT Initialize() throw();
HRESULT Initialize(CWorkerThread<ThreadTraits>* pThread) throw();
Parametreler
pThread
Mevcut bir çalışan iş parçacığı.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Açıklamalar
Oluşturma işleminden sonra veya CWorkerThread::Shutdown çağrısından sonra nesneyi başlatmak için bu yöntem çağrılmalıdır.
İki veya daha fazla CWorkerThread nesnenin aynı çalışan iş parçacığını kullanmasını sağlamak için, herhangi bir bağımsız değişken geçirmeden bunlardan birini başlatın ve bu nesneye bir işaretçiyi diğerlerinin yöntemlerine Initialize geçirin. İşaretçi kullanılarak başlatılan nesneler, bunları başlatmak için kullanılan nesneden önce kapatılmalıdır.
Mevcut bir nesnenin işaretçisi kullanılarak başlatıldığında bu yöntemin davranışının nasıl değiştiği hakkında bilgi için bkz . CWorkerThread::Shutdown .
CWorkerThread::RemoveHandle
Bir tanıtıcıyı beklenebilir nesneler listesinden kaldırmak için bu yöntemi çağırın.
HRESULT RemoveHandle(HANDLE hObject) throw();
Parametreler
hObject
Kaldırılacak tanıtıcı.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Açıklamalar
Tanıtıcı kaldırıldığında , AddHandle'a geçirilen ilişkili nesnede IWorkerThreadClient::CloseHandle çağrılır. Bu çağrı başarısız olursa, CWorkerThread tanıtıcıda Windows CloseHandle işlevini çağırır.
CWorkerThread::Shutdown
Çalışan iş parçacığını kapatmak için bu yöntemi çağırın.
HRESULT Shutdown(DWORD dwWait = ATL_WORKER_THREAD_WAIT) throw();
Parametreler
dwWait
Milisaniye cinsinden çalışan iş parçacığının kapatılmasını bekleme süresi. ATL_WORKER_THREAD_WAIT varsayılan olarak 10 saniyedir. Gerekirse, atlutil.h dosyasını eklemeden önce bu simge için kendi değerinizi tanımlayabilirsiniz.
Dönüş Değeri
Başarı durumunda S_OK veya zaman aşımı değeri olan dwWait değerinin aşılması gibi hata hresult döndürür.
Açıklamalar
Nesnesini yeniden kullanmak için bu yöntemi çağırdıktan sonra CWorkerThread::Initialize öğesini çağırın.
Başka CWorkerThread bir nesneye işaretçiyle başlatılan bir nesne üzerinde çağrının Shutdown hiçbir etkisi olmadığını ve her zaman S_OK döndürdüğünü unutmayın.
Ayrıca bkz.
DefaultThreadTraits
Sınıflar
Çoklu İş Parçacığı Kullanımı: Çalışan İş Parçacıkları Oluşturma
IWorkerThreadClient Sınıfı