求两个简单线程,同时运行从1 to 10000000000。谁给我做一个哦,让我看看结果。我菜 菜

解决方案 »

  1.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;  TmyThread = class(Tthread)
      protected
       procedure execute;
      public
       constructor Create(Suspended:boolean);  end;var
      Form1: TForm1;implementation{$R *.dfm}{ TmyThread }constructor TmyThread.Create(Suspended: boolean);
    begin
      inherited Create(Suspended);
      FreeOnTerminate := True;
    end;procedure TmyThread.execute;
    var
      i : integer;
    begin
      for i := 0 to 100000 do
      ;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      tTh : TmyThread;
    begin
      tTh := TmyThread.Create(True);
    end;end.
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Label1: TLabel;
        Label2: TLabel;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;  TmyThread = class(Tthread)
      private
        fLable : TLabel;
        fCount : integer;
      protected
        procedure Execute;   override;
      public
        constructor Create(Suspended:boolean;lb :TLabel);
        procedure display;
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TmyThread }constructor TmyThread.Create(Suspended:boolean;lb :TLabel);
    begin
      fCount := 0;
      inherited Create(True);
      FreeOnTerminate := false;
      fLable := lb;end;procedure TmyThread.display;
    begin
      fLable.Caption  := inttostr(fcount);
    end;procedure TmyThread.execute;
    var
      i : Longint;
    begin
      for i := 0 to 100000000 do
      fCount := i;
     Synchronize(display);end;procedure TForm1.Button1Click(Sender: TObject);
    var
      tTh : TmyThread;
    begin
      tTh := TmyThread.Create(True,Label1);
      tth.Resume;  tTh := TmyThread.Create(True,Label2);
      tth.Resume;
    end;end.
    要这样的??
      

  3.   


    procedure TmyThread.display; 
    begin 
      fLable.Caption  := inttostr(fcount); 
    end; procedure TmyThread.execute; 
    var 
      i : Longint; 
    begin 
      for i := 0 to 100000000 do 
      fCount := i; 
    Synchronize(display); end; 
    这是显示的。应该能看明白吧?
      

  4.   

    没看明白……
    我把你的代码全部拷到了新建工程里 然后加了一个按钮 两个label,运行,点按钮以后什么也没看到……
    fLable := lb; 啥意思啊 
    你声明这个fLable : TLabel; 啥意思哦 。
      

  5.   

    用于线程同步的。 线程在VCL操作组件的时候通常都需要异步操作的。