在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
第四节:多线程类的改进
1.需要改进的地方
a) 让线程类结束时不自动释放,以便符合 delphi 的用法。即 FreeOnTerminate:=false;
b) 改造 Create 的参数,让它适合访问 COM 组件。如:在线程时空中能够创建 TAdoConnection;
c) 设计一个接口能将一个过程( procedure )塞到线程时空中去运行的功能,这样,不必每次重载 Execute 函数。
d) 设计一个输出信息的接口
unit uFooThread;
interface uses System . Classes, System . SyncObjs;
type TOnMsg = procedure (AMsg: string ) of 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 );
全部评论
专题导读
上一篇:3. 用MATLAB优化工具箱的测试发布时间:2022-07-18下一篇:plotacriticaldifferencediagram,MATLABcode发布时间:2022-07-18热门推荐
热门话题
阅读排行榜
|
请发表评论