CThreadPool 類別
這個類別會提供處理工作項目佇列的背景工作執行緒集區。
template <
class Worker,
class ThreadTraits = DefaultThreadTraits
>
class CThreadPool :
public IThreadPoolConfig
參數
背景工作處理序。
符合提供程式碼的 背景工作原型 所使用的類別來處理工作項目在執行緒集區的佇列。ThreadTraits
提供函式的類別用於建立可在集區中的執行緒。
Members
公用建構函式
名稱 |
描述 |
---|---|
執行緒集區的建構函式。 |
|
執行緒集區的解構函式。 |
公用方法
名稱 |
描述 |
---|---|
IUnknown::AddRef 的實作。 |
|
呼叫這個方法會取得執行緒的數目在集區中。 |
|
呼叫這個方法會取得 IO 完成通訊埠的控制代碼使用至佇列的工作項目。 |
|
呼叫這個方法會取得執行緒的數目在集區中。 |
|
以毫秒為單位) 呼叫這個方法會取得最長時間執行緒集區執行緒等待關閉。 |
|
呼叫這個方法會初始化執行緒集區。 |
|
IUnknown::QueryInterface的實作。 |
|
呼叫這個方法佇列在集區的執行緒處理的工作項目。 |
|
IUnknown::Release 的實作。 |
|
呼叫這個方法會設定執行緒的數目在集區中。 |
|
以毫秒為單位) 呼叫這個方法會設定最長時間執行緒集區執行緒等待關閉。 |
|
呼叫這個方法會關閉執行緒集區。 |
備註
在集區的執行緒都會建立並終結或使用時初始化,調整大小或已關閉。 類別 背景工作 執行個體在堆疊上建立在集區中的每個背景工作執行緒。 每個執行個體為執行緒的存留期都會填入資料。
在執行緒上建立之後, Worker::Initialize 將呼叫物件與該執行緒。 在執行緒的解構 Worker::Terminate 之前,會呼叫。 這兩個方法必須接受 void* 引數。 這個引數的值傳遞給執行緒集區 CThreadPool::InitializepvWorkerParam 參數。
發生於佇列和背景工作執行緒的工作項目中可用的工作,背景工作執行緒的拉扯項目佇列並呼叫 工作 物件的方法 執行 該執行緒的。 三個項目會傳遞給方法:從佇列、相同的 pvWorkerParam 傳遞至 Worker::Initialize 和 Worker::Terminate和指標的項目加入至用來 IO 完成通訊埠佇列的 重疊。 結構。
類別宣告在 背景工作 執行緒集區要佇列透過提供 typedef 項目的型別, Worker::RequestType。 這個型別必須能夠與相互轉換 ULONG_PTR。
背景工作 的類別範例為 CNonStatelessWorker 類別。
繼承階層架構
IUnknown
CThreadPool
需求
Header: 函式