用线程连接数据库
如果登陆失败
则中止线程试了用Terminate
发现没用
线程继续执行用Free不知道可以吗问问大家
不知道用什么方法好

解决方案 »

  1.   

    如果只是想线程停下来, 用Suspend就可以了.想释放的话就用Free. Terminate将会中止线程运行. 最后会调用到free. 
      

  2.   

    在线程的死循环里加上
      if Terminated then exit;
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        ADOQuery1: TADOQuery;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    type
            TMyThread = class(TThread)
            private        protected
                procedure Execute;override;
    end;var
      Form1: TForm1;
      MyThread: TMyThread;implementation{$R *.dfm}
    procedure TMyThread.Execute;
    begin
     while true do
     begin
      beep();
      sleep(100);
      if Terminated then exit;
     end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
            MyThread := TMyThread.Create(True);
            MyThread.Priority := tpLowest;
            MyThread.FreeOnTerminate := True;
            MyThread.Resume;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
            MyThread.Terminate;
    end;end.如果没有我说的那句话,是不会停止的。
      

  4.   

    没错,或者这样写:
    procedure TMyThread.Execute;
    begin
     while not Terminated do
     begin
      beep();
      sleep(100);
     end;
    end;