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

delphi线程教学第四节:多线程类的改进

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
第四节:多线程类的改进
 
1.需要改进的地方
 
a) 让线程类结束时不自动释放,以便符合 delphi 的用法。即 FreeOnTerminate:=false;
b) 改造 Create 的参数,让它适合访问 COM 组件。如:在线程时空中能够创建 TAdoConnection;
c) 设计一个接口能将一个过程( procedure )塞到线程时空中去运行的功能,这样,不必每次重载 Execute 函数。
d) 设计一个输出信息的接口
 
下一节,将讲解如何用多个线程同时执行相同的任务
 
改进后的多线程类
本例源码(delphi xe8版本)下载: FooThread.Zip
 
unit uFooThread;
interface
uses
  System.Classes, System.SyncObjs;
 
type
  TOnMsg = procedure(AMsg: stringof object// 定义一个用于输出信息的事件
 
  // 很多编程资料推荐在 String 参数前面加 const ,以提高效率
  // 我的理由是为了代码美观。如果有多个参数,加上 const 参数太长了。
  // 在以后的使用中,请自己斟酌是否加 const 。
  TFooThread = class(TThread)
  private
    FEvent: TEvent;
    FCanAccessCom: Boolean;
    FRunningInThread: TThreadMethod;
    // TThreadMethod 的定义是 TThreadMethod = Procedure of object;
    // 意为这个 Procedure 是写在一个类中的。
    // 在其它编程语言中,TThreadMethod 被称为函数指针。
    // FRunningInThread 它用来保存将要在线程中运行的代码或 Procedure
    procedure DoExecute;
  protected
    // protected 段中定义的变量与函数,允许在子类中调用。
    procedure Execute; override;
    procedure DoOnStatusMsg(AMsg: string);
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
3. 用MATLAB优化工具箱的测试发布时间:2022-07-18
下一篇:
plotacriticaldifferencediagram,MATLABcode发布时间: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