Klasa CThreadPool

Ta klasa zapewnia puli wątków roboczych, które przetwarzają kolejki elementów roboczych.

template < 
   class Worker, 
   class ThreadTraits = DefaultThreadTraits 
> 
class CThreadPool : 
   public IThreadPoolConfig

Parametry

  • Pracownik
    Klasa odpowiadające archetyp pracownika dostarczanie kod używany do przetwarzania elementów puli wątków w kolejce pracy.

  • ThreadTraits
    Klasa, zapewniając funkcji używanych do tworzenia wątków w puli.

Członkowie

Publiczne konstruktory

Nazwa

Opis

CThreadPool::CThreadPool

Konstruktor dla puli wątków.

CThreadPool:: ~ CThreadPool

Destruktora dla puli wątków.

Metody publiczne

Nazwa

Opis

CThreadPool::AddRef

Wykonania IUnknown::AddRef.

CThreadPool::GetNumThreads

Wywołanie tej metody, aby uzyskać liczbę wątków w puli.

CThreadPool::GetQueueHandle

Wywołanie tej metody get uchwyt portu zakończenia operacji We/Wy używany do elementów pracy w kolejce.

CThreadPool::GetSize

Wywołanie tej metody, aby uzyskać liczbę wątków w puli.

CThreadPool::GetTimeout

Wywołanie tej metody, aby uzyskać maksymalny czas w milisekundach pula wątków będzie czekać do zamknięcia wątku.

CThreadPool::Initialize

Wywołanie tej metody, aby zainicjować puli wątków.

CThreadPool::QueryInterface

Wykonania IUnknown::QueryInterface.

CThreadPool::QueueRequest

Wywołanie tej metody do kolejki element pracy mają być obsługiwane przez wątek w puli.

CThreadPool::Release

Wykonania IUnknown::Release.

CThreadPool::SetSize

Wywołanie tej metody, aby ustawić liczbę wątków w puli.

CThreadPool::SetTimeout

Wywołanie tej metody, aby ustawić maksymalny czas w milisekundach pula wątków będzie czekać do zamknięcia wątku.

CThreadPool::Shutdown

Wywołanie tej metody do zamknięcia puli wątków.

Uwagi

Do tworzenia i zniszczone podczas zainicjowany, rozmiar lub zamknąć puli wątków w puli.Wystąpienie klasy pracownika zostanie utworzona na stosie każdego wątku roboczego w puli.Każde wystąpienie będzie live dla okresu istnienia wątku.

Natychmiast po utworzeniu wątków pracownika::Initialize będzie wywoływana w obiektu skojarzonego z tym wątku.Bezpośrednio przed zniszczenie wątku pracownika::Terminate zostanie wywołana.Obie metody musi zaakceptować void * argumentu.Wartość tego argumentu jest przekazywany do puli wątków przez pvWorkerParam parametr CThreadPool::Initialize.

Gdy elementy pracy w wątki kolejki i roboczy dostępny do pracy, wątek roboczy będą ściągane element kolejki i wywołanie Execute metoda pracownika obiektu dla tego wątku.Trzy elementy są następnie przekazywane do metody: element z kolejki, takie same pvWorkerParam przekazany do pracownika::Initialize i pracownika::Terminatei wskaźnik do OVERLAPPED struktura używana dla kolejki portu zakończenia operacji We/Wy.

Pracownika klasy deklaruje typ elementów, które będzie kolejce puli wątków, zapewniając typedef, pracownika::RequestType.Tego typu musi być zdolne do jest oddanych do i z ULONG_PTR.

Przykład pracownika klasy jest Klasa CNonStatelessWorker.

Hierarchii dziedziczenia

IUnknown

IThreadPoolConfig

CThreadPool

Wymagania

Nagłówek: atlutil.h

Zobacz też

Informacje

Interfejs IThreadPoolConfig

DefaultThreadTraits

Inne zasoby

Klasy ATL