delphi 线程教学第四节:多线程类的改进
Posted 晓不得2013
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 线程教学第四节:多线程类的改进相关的知识,希望对你有一定的参考价值。
第四节:多线程类的改进
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
);
DELPHI 多线程(TThread类的实现)