我写的一个线程,第一次运行很正常,可第二次运行的时候就没有响应了。大概是什么原因呢?这个线程在xp下面运行很正常,在2000下面就出现上面的情况。急啊,快帮我。

解决方案 »

  1.   

    猜测应该是suspend 和resume的问题
      

  2.   

    这是部分代码:
    unit QuerThrd;  interface  uses
      Classes, Windows, Messages, SysUtils, StdCtrls, StrUtil;  type
        TTimerThread=class(TThread)
      private
        NumberArry,DegIndex,DecIndex:TStringList;
        ColIndex,DecCount:integer;
        NoZero:Boolean;
        procedure RandomX(StartInt,EndInt,Number:Integer;NumArray:TStringList);
        procedure CreatDeg();    
      protected
        procedure Execute;override;
      public
        Delay:integer;
        constructor Create(Suspended:Boolean);end;implementationuses Unit1;constructorTTimerThread.Create(Suspended:Boolean);
    begin
      FreeOnTerminate:=True;
      inherited Create(Suspended);
    end;
    procedure TTimerThread.Execute;
    begin
    ......
    end;procedure TTimerThread.CreatDeg();
    begin
    ......
    end;procedure TTimerThread.RandomX(StartInt,EndInt,Number:Integer;NumArray:TStringList);
    begin
    ......
    end;end.我在form里面通过TTimerThread.Create(False);运行线程。