日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

在DELPHI中用線程排序

在DELPHI中用線程排序

更新時(shí)間:2022-04-29 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

在數(shù)據(jù)處理量很大的情況下,如何在數(shù)據(jù)處理的同時(shí)響應(yīng)用戶操作?Window
s95/98和WindowsNT作為多線程的多任務(wù)操作系統(tǒng),其調(diào)度單元是線程,即線程是
系統(tǒng)分配處理器時(shí)間資源的基本單元,所以我們可以利用線程實(shí)現(xiàn)在處理大批量
數(shù)據(jù)的同時(shí)響應(yīng)用戶操作。
  DELPHI作為一個(gè)優(yōu)秀的開發(fā)平臺(tái),對(duì)開發(fā)多線程應(yīng)用程序提供了強(qiáng)有力的支
持,即可直接利用32位Windows環(huán)境提供的Win32API接口函數(shù)CreateThread,也可
利用DELPHI中提供的BeginThread函數(shù)。在下面例子中,正是使用了DELPHI提供的
TThread類。
  一.基本的方法如下:
  1.從Tthread類派生一個(gè)新類。(創(chuàng)建TSortThread類)
  2.定義新類的Create方法。
  3.定義新類的Execute方法,并在Execute方法中插入線程運(yùn)行時(shí)執(zhí)行的代碼

  4.引用類方法創(chuàng)建實(shí)例。
  二.例子的詳細(xì)代碼及說明:
  首先,新建一個(gè)單元,保存為mysort.pas.在此單元中,我們創(chuàng)建了一個(gè)TSo
rtThread類,它從TThread類中繼承而來,所以當(dāng)我們?cè)诔绦蛑袆?chuàng)建這個(gè)類的一個(gè)
實(shí)例時(shí),也就是創(chuàng)建了一個(gè)新的線程。
  接著,在該類中定義一個(gè)Sort方法,用來對(duì)數(shù)組進(jìn)行排序,同時(shí)TSortThrea
d類超越了TThread類的構(gòu)造方法Create和Execute,在execute方法中,調(diào)用了對(duì)
數(shù)組進(jìn)行排序的Sort方法。具體代碼如下:
  unitmysort;
  interface
  usesClasses;//TThread類在Classes中被定義。
  type
  PSortArray=TSortArray;
TSortArray=array.[0..MaxIntdivSize
Of(Integer)-1]ofInteger;
  {此處定義了TsortThread類}
  TSortThread=class(TThread)
  Private
  {在TSortThread類中定義了如下幾個(gè)私有變?cè)?#125;
  FSortArray:PSortArray;
  FSize:Integer;
  FA,FB,FI,FJ:Integer;
  Protected
  {類TSortThread超越了類Tthread的Execute方法}
  procedure Execute;override;
  {類TsortThread添加了一個(gè)Sort方法}
  procedure Sort(varA:arrayofInteger);
  public
  {類TSortThread超越了類Tthread的構(gòu)造方法}
  constructorCreate(varSortArray:arrayofInteger);
  end;
  implementation
  constructorTSortThread.Create(varSortArray:arrayofInteger);
  begin
  FSortArray:=@SortArray;
  FSize:=High(SortArray)-Low(SortArray)+1;
  FreeOn Terminate:=True;
  inheritedCreate(False);
  end;
  {當(dāng)線程開始時(shí),Execute方法將被調(diào)用。}
  procedure TSortThread.Execu
te;
  begin
  Sort(Slice(FSortArray,FSize));
  end;
  {下面實(shí)現(xiàn)了冒泡法排序}
  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
  最后,在用戶應(yīng)用程序的implementation處加入usesmysort,在執(zhí)行排序的地
方加入TQuickSortthread.Create(SortArray),其中SortArray為一實(shí)際的數(shù)組。
這樣就可以用線程實(shí)現(xiàn)排序,在排序過程中,用戶不必等到排序結(jié)束就可以執(zhí)行
其它操作。這種用多線程實(shí)時(shí)響應(yīng)用戶操作方法在涉及大量數(shù)據(jù)處理的應(yīng)用程序
中顯得尤為重要。
(湖南 劉一帆)

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 天天操天天干天天射 | 高h视频在线免费观看 | 欧美黄色高清 | 国产精品久久久久影院色 | 国产精品成人久久久久 | 成人伊人亚洲人综合网站222 | 精品网址 | 中文字幕在线观看一区二区三区 | 日韩欧美在线播放 | 福利片免费一区二区三区 | 亚洲精品日韩一区二区日本 | 人与禽交视频免费观看 | 色无五月 | 天天鲁天天爱天天鲁天天 | 国产小视频你懂的 | 亚洲人成网址在线播放a | 中文字幕第八页 | 国产成人91高清精品免费 | 国产成人精品视频一区 | 女网址www女高清中国 | 成人在线不卡视频 | 手机在线中文字幕乱码免费 | 国产精品自在线天天看片 | 国产精品99久久免费观看 | 欧洲做视频在线观看 | 久久不射视频 | 亚洲第一成年免费网站 | 欧美a级片视频 | 亚洲一区二区三区在线播放 | 日本网站在线看 | 国产精品手机在线播放 | 国产精品久久久久久久久久妇女 | 日韩中文字幕一区二区不卡 | 激情毛片视频 | 中文字幕精品1在线 | 国产日韩欧美亚洲综合首页 | 97久久精品人人做人人爽 | 国产无遮挡又黄又爽在线视频 | 欧美性猛交xxxx免费看手交 | 国产成人精品福利网站在线观看 | 成人性欧美丨区二区三区 |