**********如何中止线程********** 用线程连接数据库如果登陆失败则中止线程试了用Terminate发现没用线程继续执行用Free不知道可以吗问问大家不知道用什么方法好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果只是想线程停下来, 用Suspend就可以了.想释放的话就用Free. Terminate将会中止线程运行. 最后会调用到free. 在线程的死循环里加上 if Terminated then exit; 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.如果没有我说的那句话,是不会停止的。 没错,或者这样写:procedure TMyThread.Execute;begin while not Terminated do begin beep(); sleep(100); end;end; delphi 2009 用vm_gettext取不到第三方软件的文本值 delphi8 中使用ado组件问题! 画滚动的圆 delphi中是否有类似VC中CRectTracker的控件 BDE VS ADO 如何在程序中得到fastreport 的总页数(不是在报表上显示) adoquery 的删除问题?高分急救!在线等待 有谁用DelphiIC开发过IC卡会员酒店前台系统,IC卡上储存会员个人信息,请提供思路谢谢! skinengine问题,急等 如何获得图片(JPG文件)的真实尺寸? 关于TSecretPanel问题
if Terminated then exit;
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.如果没有我说的那句话,是不会停止的。
procedure TMyThread.Execute;
begin
while not Terminated do
begin
beep();
sleep(100);
end;
end;