Delphi 线程池使用的问题

EternallyCode 2011-01-22 12:42:31
线程池类是取自卢伟的专栏DELPHI 线程池代码(http://blog.csdn.net/babyvspp/archive/2008/01/01/2008234.aspx),封装的十分完美,用法也非常简单,可以根据使用者设定的初始工作线程数和最大线程数以及线程执行时间自动增加工作线程。


用法:

// 创建线程池
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;

以上是网上说的使用方法,谁能给我提供一个完整的实例,主要是不明白下面这段代码的使用,代码中的继承自TWorkItem不能理解,哪位能给我讲解下?
var
 AWorkItem: TRecvCommDataWorkItem; // 继承自TWorkItem
begin
 AWorkItem := TRecvCommDataWorkItem.Create;
 Move(PData[0], AWorkItem.FRecvData[0], PDataLen);
 AWorkItem.FRecvDataLen := PDataLen;
 FThreadPool.AddRequest(AWorkItem); // 向线程池分配一个任务
...全文
519 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
pi3b 2011-01-22
  • 打赏
  • 举报
回复
啥意思,没有问题吧?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧