关于TThread的释放问题,求高人。
本帖最后由 twins7713 于 2013-01-11 15:09:47 编辑 本人学delphi不久,对TTHREAD实在理解不够深,总是在工程上的程序有错,这里就不拿原代码了,太多了不好观看,这里就做了个类似的例子,请大家看下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TEX1=class(TThread)
protected
procedure Execute; override;
public
constructor create(CreateSuspended:Boolean;FOT:Boolean);//PODate:TList);
end;
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
FEX1:TEX1;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TEX1 }
constructor TEX1.create(CreateSuspended, FOT: Boolean);
begin
inherited create(CreateSuspended);
FreeOnTerminate:=fot;
end;
procedure TEX1.Execute;
begin
ShowMessage('3');
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
if not Assigned(FEX1) then
begin
FEX1:=TEX1.Create(True,True);
ShowMessage('1');
FEX1.Resume
end
else
ShowMessage('2');
end;
end.