• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi线程教学第三节:设计一个有生命力的工作线程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
第三节:设计一个有生命力的工作线程
 
创建一个线程,用完即扔。相信很多初学者都曾这样使用过。
频繁创建释放线程,会浪费大量资源的,不科学。
 
1.如何让多线程能多次被复用?
 
关键是不让代码退出 Execute 这个函数,一旦退出此函数,此线程的生命周期即结束。
要做到这一点,就需要在 Execute 中写一个”死循环“。大致如下:
 
procedure TFooThread.Execute;
begin
  // 0.挂起
  while not Terminated do // Terminated 是 TThread 的一个 Boolean 属性。
  begin
    // 1.获得参数
    // 2.计算
    // 3.返回结果
    // 4.挂起
  end;
end;
 
原本 TThread 是有挂起功能这个函数的,叫 suspend,但是在 XE2 后,已经废止此函数。
故需要找一个替代品 TEvent ,此类在 System.SyncObjs 单元中。于是:
 
unit uFooThread;
interface
uses
  System.Classes, System.SyncObjs;
type
 
  TFooThread = class(TThread)
  private
    FEvent: TEvent; // 此类用来实现线程挂起功能
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
    destructor Destroy; override;
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB新手教程发布时间:2022-07-18
下一篇:
matlab——sparse函数和full函数 转载:http://www.cnblogs.c ...发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap