a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

在DELPHI中用線程排序

2019-11-18 18:59:51
字體:
來源:轉載
供稿:網友
   在數據處理量很大的情況下,如何在數據處理的同時響應用戶操作?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編寫DelTree程序

下一篇:在delphi中如何限制鼠標的移動區域。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 免费的黄色网址 | 日本精品视频在线播放 | av片在线观看网站 | 天天艹夜夜艹 | 2024天天干 | 日韩欧美国产一区二区 | 久久精品电影 | 久久逼逼 | 欧美99 | 日韩免费视频一区二区 | 国产精品乱码一区二区三区 | 成人黄色免费观看 | 欧美日韩国产中文字幕 | 波多野结衣一二三四区 | 亚洲国产aⅴ成人精品无吗 91精品国产一区二区 | 欧美精品1区 | 午夜老湿影院 | 不卡在线| 久久久久久久 | 欧美三区 | a性片| 欧美日韩网 | 成人欧美一区二区三区黑人孕妇 | 一级一级毛片 | 欧美成人一区二免费视频软件 | 九九热这里只有精品在线观看 | 国产小视频免费在线观看 | 欧美精品一区二区三区四区 | 欧美午夜视频 | 亚洲啊v在线 | 午夜欧美 | 国产日韩欧美一区二区在线观看 | 曰韩精品一区二区 | 天天操,夜夜操 | 久久久久久亚洲精品中文字幕 | 国产精品久久久久久久久久新婚 | 超碰97av | 日本免费一区二区视频 | 成人一区二区三区在线观看 | 亚洲精品一区中文字幕乱码 | 久久精品欧美 |