• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

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

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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲第一成年网站大全亚洲| 亚洲乱码日产一区三区| 亚洲国产成人超福利久久精品| 日本免费污片中国特一级| 永久亚洲成a人片777777 | 亚洲另类春色国产精品| 99爱在线精品视频免费观看9 | 亚洲国产精品一区二区三区久久| 国产精品国产亚洲区艳妇糸列短篇| 日韩激情淫片免费看| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 亚洲AV无码AV男人的天堂| 久久aa毛片免费播放嗯啊| 亚洲黄色免费电影| 人成午夜免费视频在线观看| 亚洲不卡中文字幕| 成人免费在线观看网站| 国产青草亚洲香蕉精品久久| 亚洲色一色噜一噜噜噜| 无码人妻精品中文字幕免费| 亚洲校园春色小说| 国产香蕉九九久久精品免费| 婷婷亚洲综合一区二区| 在线观看国产区亚洲一区成人 | 久久久亚洲精品蜜桃臀| 免费看男人j放进女人j免费看| 亚洲视频.com| 全免费一级毛片在线播放| 一级免费黄色大片| 亚洲视屏在线观看| 国产一区二区免费在线| 精品人妻系列无码人妻免费视频 | 亚洲国产精品自在在线观看| 毛片免费在线视频| 精品一区二区三区高清免费观看 | ww在线观视频免费观看| 337P日本欧洲亚洲大胆精品| 亚洲小说区图片区另类春色| 免费a级毛片高清视频不卡| 久久www免费人成看国产片| 亚洲另类春色国产精品|