如题。

解决方案 »

  1.   

    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
      

  2.   

    Handle := GetCurrentThread();
      

  3.   

    我想在A线程内得到当前的句柄,然后传给线程B,让线程B控制线程A,
    但是用GetCurrentThread()得到的句柄调用A时,就会出错,而且
    Thandle(myThread.create(false))与 GetCurrentThread();
    得到的结果不一样的。