共用方式為


CThreadPool 類別

這個類別會提供處理工作項目佇列的背景工作執行緒集區。

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

參數

  • 背景工作處理序。
    符合提供程式碼的 背景工作原型 所使用的類別來處理工作項目在執行緒集區的佇列。

  • ThreadTraits
    提供函式的類別用於建立可在集區中的執行緒。

Members

9tz6fz1e.collapse_all(zh-tw,VS.110).gif公用建構函式

名稱

描述

CThreadPool::CThreadPool

執行緒集區的建構函式。

CThreadPool::~CThreadPool

執行緒集區的解構函式。

9tz6fz1e.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

CThreadPool::AddRef

IUnknown::AddRef 的實作。

CThreadPool::GetNumThreads

呼叫這個方法會取得執行緒的數目在集區中。

CThreadPool::GetQueueHandle

呼叫這個方法會取得 IO 完成通訊埠的控制代碼使用至佇列的工作項目。

CThreadPool::GetSize

呼叫這個方法會取得執行緒的數目在集區中。

CThreadPool::GetTimeout

以毫秒為單位) 呼叫這個方法會取得最長時間執行緒集區執行緒等待關閉。

CThreadPool::Initialize

呼叫這個方法會初始化執行緒集區。

CThreadPool::QueryInterface

IUnknown::QueryInterface的實作。

CThreadPool::QueueRequest

呼叫這個方法佇列在集區的執行緒處理的工作項目。

CThreadPool::Release

IUnknown::Release 的實作。

CThreadPool::SetSize

呼叫這個方法會設定執行緒的數目在集區中。

CThreadPool::SetTimeout

以毫秒為單位) 呼叫這個方法會設定最長時間執行緒集區執行緒等待關閉。

CThreadPool::Shutdown

呼叫這個方法會關閉執行緒集區。

備註

在集區的執行緒都會建立並終結或使用時初始化,調整大小或已關閉。類別 背景工作 執行個體在堆疊上建立在集區中的每個背景工作執行緒。每個執行個體為執行緒的存留期都會填入資料。

在執行緒上建立之後, Worker::Initialize 將呼叫物件與該執行緒。在執行緒的解構 Worker::Terminate 之前,會呼叫。這兩個方法必須接受 void* 引數。這個引數的值傳遞給執行緒集區 CThreadPool::InitializepvWorkerParam 參數。

發生於佇列和背景工作執行緒的工作項目中可用的工作,背景工作執行緒的拉扯項目佇列並呼叫 工作 物件的方法 執行 該執行緒的。三個項目會傳遞給方法:從佇列、相同的 pvWorkerParam 傳遞至 Worker::Initialize 和 Worker::Terminate和指標的項目加入至用來 IO 完成通訊埠佇列的 重疊。 結構。

類別宣告在 背景工作 執行緒集區要佇列透過提供 typedef 項目的型別, Worker::RequestType。這個型別必須能夠與相互轉換 ULONG_PTR

背景工作 的類別範例為 CNonStatelessWorker 類別

繼承階層架構

IUnknown

IThreadPoolConfig

CThreadPool

需求

Header: 函式

請參閱

參考

IThreadPoolConfig 介面

DefaultThreadTraits

其他資源

ATL 類別