代码如下: 
 先执行 Button2Click 然后执行  Button4Click 为什么 线程没执行函数 没有推出去  但是 执行 Button5Click  后 IsThreadTerminate 明显时 TRUE 的
拜求 高手执教 帮忙调试 unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
   TThreadProc = Procedure(const IsThreadTerminate : boolean) of object;   TMyThread = class(TThread)
      private
         FIsThreadTerminate: boolean;
         FThreadProc : TThreadProc;
      protected
         procedure Execute; Override;
      public
         constructor Create(ThreadProc : TThreadProc);OverLoad;
         destructor destroy;override;
         property IsThreadTerminate:boolean read FIsThreadTerminate write FIsThreadTerminate;
         procedure TerminateThread;
   end;
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Edit2: TEdit;
    Button5: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
   myThread: TMyThread;
   procedure  num(const IsThreadTerminate : boolean);
   //procedure ONThreaddestroy;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;implementation{$R *.dfm}procedure  TForm1.num(const IsThreadTerminate : boolean);
var
   i,j: integer;
begin
   j:= 0;
   for i:= 0 to 100000 do
   begin
      if IsThreadTerminate then
         begin
            Edit2.Text:= '111111111111';
            break;
         end
      else
         Edit2.Text:= '2222222222222';
         
         j:= j + 1;
         Edit1.Text:= inttostr(j);
   end;
end;procedure TMyThread.Execute;
begin
   if Assigned(FThreadProc) then  FThreadProc(FIsThreadTerminate);
end;constructor TMyThread.Create(ThreadProc : TThreadProc);
begin
   FThreadProc:= ThreadProc;   FreeOnterminate := TRUE;   FIsThreadTerminate:= FALSE;   Inherited Create(FALSE);end;destructor TMyThread.destroy;
beginend;procedure TMyThread.TerminateThread;
beginend;procedure TForm1.Button2Click(Sender: TObject);
begin
   myThread:= TmyThread.Create(num);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
   myThread.Resume;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
   myThread.Suspend;
end;procedure TForm1.Button4Click(Sender: TObject);
begin
   myThread.Suspend;   //设置IsThreadTerminate 为TRUE  让线程自动结束
   myThread.IsThreadTerminate:= TRUE;
   
end;procedure TForm1.Button5Click(Sender: TObject);
begin
   //测试  IsThreadTerminate 是否为TRUE
   if myThread.IsThreadTerminate then
      showmessage('111');      
end;end.