首先创建一个线程有两种方法:
1.Delphi XE7中:
打开’File’菜单—‘New’—‘Other’—‘Delphi Project’—‘Delphi Files’—‘Thread Object’
type
TTestThread = class(Thread)
privete
{ privete declartions}
protected
procedure Execute; override;
procedure GiveAnswer;
end;
procedure TTestThread.Execute;
var
i: integer;
begin
FreeOnTerminate := true; //在线程终止时会自动清除所有线程对象
for i := 0 to 20000 then
begin
//do something
if Terminate then Break; //在执行线程时,线程会反复检查Terminate的值,所以这个可以用在中途结束线程
end;
Synchronize(GiveAnswer); //这个是作用在主线程的一个过程
end;
procedure TTestThread.GiveAnswer;
begin
MainForm.Lable.Caption := ‘就是吊!’;
end;
比如此时在主线程当中相应
procedure SomeButtonClick(sender: TObject);
var
TemThread: TTestThread;
begin
TemThread := TTestThread.create(false);
//false是指当执行create是,线程会自动执行Execute(),否则需调用TThread中Resume()来唤醒线程
end;