核心提示:用法:// 创建线程池FThreadPool := TThreadsPool.Create(Self); // 创建线程池FThreadPool.ThreadsMin := 5; // 初始工作线程数...
用法:// 创建线程池
FThreadPool := TThreadsPool.Create(Self); // 创建线程池
FThreadPool.ThreadsMin := 5; // 初始工作线程数
FThreadPool.ThreadsMax := 50; // 最大允许工作线程数
FThreadPool.OnProcessRequest := DealwithCommRecvData; // 线程工作函数(DealwithCommRecvData在工作者线程的Execute方法中被调用)
// 使用线程池
var
AWorkItem: TRecvCommDataWorkItem; // 继承自TWorkItem
begin
AWorkItem := TRecvCommDataWorkItem.Create;
Move(PData[0], AWorkItem.FRecvData[0], PDataLen);
AWorkItem.FRecvDataLen := PDataLen;
FThreadPool.AddRequest(AWorkItem); // 向线程池分配一个任务
end;
迅雷专用高速下载