File->new->Other->Thread Object
/****************************************************************************************************/
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TSendShThread = class(TThread)//继承类
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
Form1: TForm1;
SendShThread: TSendShThread;//实例化
implementation
{$R *.dfm}
procedure TSendShThread.Execute;
var i : integer;
begin
i:=0;
while not Terminated do
begin
sleep(6000);//定时循环
{
编写一
系列线
程执行
的代码
}
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendShThread:= TSendShThread.Create(True);
{当TSendShThread的Create()被调用的时候,需要传递一个布尔型的参数CreateSuspended。如果把这个参数设为False,那么当调用Create()之后,Execute()会被自动调用,也就是自动地执行线程代码。如果该参数设为True,这样创建了线程,但是线程创建完成之后是挂起的,需要调用TSendShThread的Resume()来唤醒线程执行。}
SendShThread.FreeOnTerminate:=True;{这可以让线程执行完毕后随即释放}
SendShThread.Resume;{唤醒线程,跳转到线程执行方法,但是不影响主进程的执行,也就是不卡!}
end;
end.