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.

相关阅读 >>

Delphi禁止在android上重复按下按钮

Delphi escape/unescape编码

Delphi中查找指定文件的例程

Delphi中如何捕获mediaplayer播放的视频中的每一帧 ?

Delphi 如何识别应用程序没有响应

Delphi 几个实用的html解析函数

Delphi 不重复运行外部程序exe

Delphi 之 标签组件(tlabel组件)

Delphi中write,read,writeln和readln的用法

Delphi之软件检测更新

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...