欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

在DELPHI中用線程排序

在DELPHI中用線程排序

更新時間:2022-04-29 文章作者:未知 信息來源:網絡 閱讀次數:

在數據處理量很大的情況下,如何在數據處理的同時響應用戶操作?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為一實際的數組。
這樣就可以用線程實現排序,在排序過程中,用戶不必等到排序結束就可以執行
其它操作。這種用多線程實時響應用戶操作方法在涉及大量數據處理的應用程序
中顯得尤為重要。
(湖南 劉一帆)

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 湖州市| 海门市| 东乌珠穆沁旗| 军事| 吴桥县| 庄河市| 长葛市| 溧阳市| 黎川县| 城市| 梓潼县| 社旗县| 句容市| 南华县| 凉城县| 拜泉县| 华池县| 沛县| 榆林市| 广安市| 昌宁县| 汾西县| 邵阳市| 朝阳县| 辛集市| 治多县| 三门峡市| 巨鹿县| 金坛市| 正镶白旗| 铅山县| 四子王旗| 大洼县| 合川市| 凤山市| 图木舒克市| 五家渠市| 黔西县| 香港 | 通许县| 永川市|