 |
|
 |
企业管理软件 |
 |
|
 |
在Delphi中用线程排序 |
 |
| 在数据处理量很大的情况下,如何在数据处理的同时响应用户操作?Windows95/98和WindowsNT作为多线程的多任务操作系统,其调度单元是线程,即线程是系统分配处理器时间资源的基本单元,所以我们可以利用线程实现在处理大批量数据的同时响应用户操作。 |
|
| DELPHI作为一个优秀的开发平台,对开发多线程应用程序提供了强有力的支持,即可直接利用32位Windows环境提供的Win32API接口函数CreateThread,也可利用DELPHI中提供的BeginThread函数。在下面例子中,正是使用了DELPHI提供的TThread类。 |
|
| 一.基本的方法如下: |
|
| 1.从Tthread类派生一个新类。(创建TSortThread类) |
| 2.定义新类的Create方法。 |
| 3.定义新类的Execute方法,并在Execute方法中插入线程运行时执行的代码。 |
| 4.引用类方法创建实例。 |
|
| 二.例子的详细代码及说明: |
|
| 首先,新建一个单元,保存为mysort.pas.在此单元中,我们创建了一个TSortThread类,它从TThread类中继承而来,所以当我们在程序中创建这个类的一个实例时,也就是创建了一个新的线程。 |
|
| 接着,在该类中定义一个Sort方法,用来对数组进行排序,同时TSortThread类超越了TThread类的构造方法Create和Execute,在execute方法中,调用了对数组进行排序的Sort方法。具体代码如下: |
|
unitmysort;
interface
usesClasses;//TThread类在Classes中被定义。
type
PSortArray=TSortArray;
TSortArray=array.[0..MaxIntdivSize Of(Integer)-1]ofInteger;
{此处定义了TsortThread类}
TSortThread=class(TThread)
Private
{在TSortThread类中定义了如下几个私有变元}
FSortArray:PSortArray;
FSize:Integer;
FA,FB,FI,FJ:Integer;
Protected
{类TSortThread超越了类Tthread的Execute方法}
procedure Execute;override;
{类TsortThread添加了一个Sort方法}
procedure Sort(varA:arrayofInteger);
public
{类TSortThread超越了类Tthread的构造方法}
constructorCreate(varSortArray:arrayofInteger);
end;
implementation
constructorTSortThread.Create(varSortArray:arrayofInteger);
begin
FSortArray:=@SortArray;
FSize:=High(SortArray)-Low(SortArray)+1;
FreeOn Terminate:=True;
inheritedCreate(False);
end;
{当线程开始时,Execute方法将被调用。}
procedure TSortThread.Execute;
begin
Sort(Slice(FSortArray,FSize));
end;
{下面实现了冒泡法排序}
procedure TSortThread.Sort(varA:arrayofInteger);
var
I,J,T:Integer;
begin
for I:=High(A)downto Low(A) do
for J:=Low(A)to High(A)-1 do
if A[J]>A[J+1] then
begin
T:=A[J];
A[J]:=A[J+1];
A[J+1]:=T;
if Terminated then Exit;
end;
end;
end
|
|
|
| 最后,在用户应用程序的implementation处加入usesmysort,在执行排序的地方加入TQuickSortthread.Create(SortArray),其中SortArray为一实际的数组。这样就可以用线程实现排序,在排序过程中,用户不必等到排序结束就可以执行其它操作。这种用多线程实时响应用户操作方法在涉及大量数据处理的应用程序中显得尤为重要。 |
|
|
|
 |
速用进销存财务软件推荐 |
 |
| 速用软件有限公司一直致力于企业财务软件,进销存软件,业务管理软件的开发与研究,提供免费财务软件下载,免费进销存软件下载服务,承接行业管理软件开发设计,企业管理软件量身订做项目,更先进的企业管理知识,更优秀的财务管理软件,更丰富的软件应用知识,更专业的免费咨询服务,尽在广州速用软件(www.superuse.com.cn) |
|
|
|
|
| 公司地址:广州市连新路171号省科技厅大院4号楼415-417室(纪念堂地铁口旁) |
| 咨询热线:020-83540762、020-83540867 传真:020-83540867 |
在线客服: MSN(speeduse@hotmail.com) |
|
|