网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
在DELPHI中用线程排序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

  在数据处理量很大的情况下,如何在数据处理的同时响应用户操作?Window
s95/98和WindowsNT作为多线程的多任务操作系统,其调度单元是线程,即线程是
系统分配处理器时间资源的基本单元,所以我们可以利用线程实现在处理大批量
数据的同时响应用户操作。
  DELPHI作为一个优秀的开发平台,对开发多线程应用程序提供了强有力的支
持,即可直接利用32位Windows环境提供的Win32API接口函数CreateThread,也可
利用DELPHI中提供的BeginThread函数。在下面例子中,正是使用了DELPHI提供的
TThread类。
  一.基本的方法如下:
  1.从Tthread类派生一个新类。(创建TSortThread类)
  2.定义新类的Create方法。
  3.定义新类的Execute方法,并在Execute方法中插入线程运行时执行的代码

  4.引用类方法创建实例。
  二.例子的详细代码及说明:
  首先,新建一个单元,保存为mysort.pas.在此单元中,我们创建了一个TSo
rtThread类,它从TThread类中继承而来,所以当我们在程序中创建这个类的一个
实例时,也就是创建了一个新的线程。
  接着,在该类中定义一个Sort方法,用来对数组进行排序,同时TSortThrea
d类超越了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.Execu
te;
  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为一实际的数组。
这样就可以用线程实现排序,在排序过程中,用户不必等到排序结束就可以执行
其它操作。这种用多线程实时响应用户操作方法在涉及大量数据处理的应用程序
中显得尤为重要。
(湖南 刘一帆)

  • 上一篇资讯: 利用Delphi 5中调用Excel 97
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号