进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> DLEPHI -> 文章内容  
在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.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中用线程排序
在Google中搜索:在DELPHI中用线程排序
在Yahoo中搜索:在DELPHI中用线程排序

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]
下一篇文章:怎样让程序延时

 相关文章    最新文章
· 在DIV中class与id的区别及应用
· 在DreamWeaver3中应用CSS样式表技巧两则
· [组图] 如何在Dreamweaver中制作表格美化页..
· [组图] 如何在Dreamweaver中嵌入式框架
· [组图] 在Dreamweaver中插入有颜色的直线
· [组图] 在Dreamweaver MX中应用“占位图形..
· [组图] 在Dreamweaver制作可拖动表格
· [图文] 在DW 4中用CSS样式表来美化网页
· [组图] 在Dreamweaver中使用样式表
· 解决在Dreamweaver中不支持中文文件名的方..
 
· 小技巧:如何用Delphi创建快捷方式
· Delphi版模仿熊猫烧香病毒核心源码
· Delphi“判断服务器路径”与“清空日志文..
· 应用程序敏感键的实现
· 用Delphi实现远程屏幕抓取
· 用DEPHI为应用软件建立注册机制
· 利用Hook技术实现键盘监控
· Delphi编程实现Ping操作
· 通用Delphi数据库输入控件DBPanel的实现
· 用Delphi开发屏幕保护预览程序

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)