返回列表 发帖

[转帖]一个多线程后台扫描的程序和源代码

用delphi来实现多线程,主要是要把TThread作为基类,用继承的形式来生成子类。
QuerThrd.Pas

unitQuerThrd;

interface

uses

Classes,DBTables;

type

TQueryThreadΚclass(TThread)

private

fQuery:tQuery;

protected

procedureExecute;override;

public

constructorCreate(Suspended:Boolean;Query:
TQuery);

end;

implementation

constructor

TQueryThread.Create(Suspended:Boolean;Quer
y:TQuery);

begin

inheritedCreate(Suspended);

fQuery:ΚQuery;

FreeOnTerminate:ΚTrue;

end;

procedureTQueryThread.Execute;

begin

fQuery.Open;

end;

end.
这里构造了一个TThread的子类TQueryThread,用于在后台执行查询。在该类的Create函数中,传递了两个参数Suspended和Query,其中Suspended用于控制线程的运行,如果Suspend为真,TQueryThread类的线程在建立后将立即被悬挂,一直到运行了Resume方法,该线程才会继续执行,Query参数用于接受一个已经存在的Query控件而使它在多线程的情况下运行。Execute是最重要的过程,它是类TQueryThread的执行部分,所有需要在这个多线程类中运行的语句都必须写在这个过程里。

TOP

返回列表 回复 发帖