Delphi 实现检测线程类TThread是否结束


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type

 TMY = class(TThread)
 public
 constructor create(); overload;
 destructor Destroy(); overload;
 procedure execute; override;
 end;

 TForm1 = class(TForm)
 Button1: TButton;
 Panel1: TPanel;
 Button2: TButton;
 Panel2: TPanel;
 procedure Button1Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
 private
 { Private declarations }
 My: TMY;
 public
 { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

constructor TMY.create();
begin
 FreeOnTerminate := True;
 inherited Create(False);
end;

destructor TMY.Destroy();
begin
 inherited Destroy;
end;

procedure TMY.execute;
var
 i: Integer;
begin
 for i := 1 to 5000 do
 begin
 Sleep(1);
 Form1.Panel1.Caption := IntToStr(i);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 My := TMY.create;// 执行线程
end;

procedure TForm1.Button2Click(Sender: TObject);
var I:Cardinal;
 Isquit:Boolean;
begin
 Isquit:=GetExitCodeThread(My.handle,i)  ;//检查线程是否结束
if  Isquit  then Button2.Caption:='True' else Button2.Caption:='False';

end;

end.
联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678