unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TMY = class(TThread)
public ThreadEnd:boolean;
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
ThreadEnd :=False;
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;
ThreadEnd :=True;
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';
// My.ThreadEnd=True 也可以确定线程结束。
end;
end.Delphi 实现检测线程类TThread是否结束
最新推荐文章于 2025-03-27 22:55:59 发布
本文介绍了一个使用Delphi编写的简单线程类TMY,该类负责在后台执行任务并更新GUI组件的内容。通过创建TMY实例并在主线程中触发特定操作,可以实现界面元素的动态更新。
4989

被折叠的 条评论
为什么被折叠?



