16,748
社区成员
发帖
与我相关
我的任务
分享
type
TMyThread = class(TThread)
protected
procedure Execute; override;
Private
public
end;
implementation
procedure TMyThread.Execute;
begin
FreeOnTerminate := True; {这可以让线程执行完毕后随即释放}
//事件
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyThread.Create(False);
end;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyThread = class(TThread)
private
FRunType: Integer;
procedure Procedure0;
procedure Procedure1;
protected
procedure Execute; override;
public
property RunType: Integer read FRunType write FRunType;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyThread }
procedure TMyThread.Execute;
begin
inherited;
case FRunType of
0: Procedure0;
1: Procedure1;
end;
end;
procedure TMyThread.Procedure0;
begin
//类别0执行代码
end;
procedure TMyThread.Procedure1;
begin
//类别1执行代码
end;
procedure TForm1.btn1Click(Sender: TObject);
var
MyThread0, MyThread1: TMyThread;
begin
MyThread0 := TMyThread.Create(True);
MyThread0.RunType := 0;
MyThread0.Resume;
MyThread1 := TMyThread.Create(True);
MyThread1.RunType := 1;
MyThread1.Resume;
end;
end.
type
TMyThread = class(TThread)
protected
procedure Execute; override;
Private
public
end;
implementation
procedure TMyThread.Execute;
begin
FreeOnTerminate := True; {这可以让线程执行完毕后随即释放}
//事件
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyThread.Create(False);
end;
type
TMyThread2 = class(TThread) //TMyThread2 不是TMyThread
protected
procedure Execute; override;
Private
public
end;
implementation
procedure TMyThread2.Execute; //TMyThread2
begin
FreeOnTerminate := True; {这可以让线程执行完毕后随即释放}
//事件
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TMyThread2.Create(False); //TMyThread2
end;