下面就是一个基本的继承TThread生成的多线程类,希望能给你帮助!
QuerThrd.Pas
unitQuerThrd;
interface
uses
Classes,DBTables;
type
TQueryThreadΚclass(TThread)
private
fQuery:tQuery;
protected
procedure Execute;override;
public
constructor Create(Suspended:Boolean;Query:TQuery);
end; implementation constructor
TQueryThread.Create(Suspended:Boolean;Query:TQuery);
begin
inheritedCreate(Suspended);
fQuery:ΚQuery;
FreeOnTerminate:ΚTrue;
end;
procedureTQueryThread.Execute;
begin
fQuery.Open;
end;
end.
假设我们已经建立了一个窗体FORM1,窗体中有我们将要使用的查询控件Query1。那么我们在该单元的USES部分加入上面写的QuerThrd单元。
procedureTForm1.Button1Click(Sender:TObject);
begin
{建立一个运行的进程}
TQueryThread.Create(False,Query1);
end;
如果这个过程被执行,那么窗体中的查询控件Query1就会自动在多线程的环境下运行查询。
QuerThrd.Pas
unitQuerThrd;
interface
uses
Classes,DBTables;
type
TQueryThreadΚclass(TThread)
private
fQuery:tQuery;
protected
procedure Execute;override;
public
constructor Create(Suspended:Boolean;Query:TQuery);
end; implementation constructor
TQueryThread.Create(Suspended:Boolean;Query:TQuery);
begin
inheritedCreate(Suspended);
fQuery:ΚQuery;
FreeOnTerminate:ΚTrue;
end;
procedureTQueryThread.Execute;
begin
fQuery.Open;
end;
end.
假设我们已经建立了一个窗体FORM1,窗体中有我们将要使用的查询控件Query1。那么我们在该单元的USES部分加入上面写的QuerThrd单元。
procedureTForm1.Button1Click(Sender:TObject);
begin
{建立一个运行的进程}
TQueryThread.Create(False,Query1);
end;
如果这个过程被执行,那么窗体中的查询控件Query1就会自动在多线程的环境下运行查询。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货