2024年3月20日发(作者:)

◆delphi多线程编程之一create和Free◆

(调试环境:Delphi2007+WinXPsp3 例程Tst_)

Google搜到线程的例子都是那个画图的,猛禽那个多线程又太过高深(对于我这一滴水来说),

万一老师开线程的博还是要等。只有自己看着《Delphi5开发人员指南》中文版PDF一步一步来弄懂些

初步的东西,到时候可以跟上万一老师的课程。

一、创建:

1、直接书写:

unit Unit1;

interface

uses Classes;

TMyThead = class(TThread)

private

{ Private declarations }

protected

procedure Execute; override;

end;

implementation

{用鼠标放在上面的TMyThead上按ctrl+alt+c直接自动生成下面的}

procedure e;

begin

inherited;

end;

2、在File菜单的New—Others—Delphi Files里面选Thread Object,出来一个对话框,你在Thread名

字里填TMyThread后,就会自动生成一个新的Unit2,里面的内容和上面一样。

二、简单例子:(例程:Tst_)

在一个Form上放3个按钮和一个Memo,然后加上下面这段。

TMyThead = class(TThread)

private

{ Private declarations }

protected

procedure Execute; override;

end;

var

Form1: TForm1;

m:integer;

implementation

{$R *.dfm}

{ TMyThead }

function Func1(const n:Integer):Integer; // 定义一个耗时函数来运行

begin

Result:=Round(abs(Sin(Sqrt(n))));

end;

procedure e;

var

i:integer;

begin

for i := 0 to 20000000 do

inc(m,Func1(i)); //m全局变量

end;

procedure 1Click(Sender: TObject);

var

i:integer;

begin

for i := 0 to 20000000 do

inc(m,Func1(i)); //m全局变量

end;

procedure 2Click(Sender: TObject);

var

MyThread:TMyThead;

begin