type
  ConServer = class(TThread)  //继承procedure ConServer.Execute;  //线程执行的代码
begin
  if Terminated then Abort;
   Form1.BitBtn1.Click;
end;var
  testconserver:ConServer;
begin
  testconserver:=ConServer.Create(False);  //线程创建时自动执行  ConServer.Execute 的代码
end;我想实现的目的是 让多线程一直去点 Form1.BitBtn1  但是现在的效果是 只点击一次 Form1.BitBtn1请问如何改进?让多线程一直执行!

解决方案 »

  1.   

    procedure ConServer.Execute;  //线程执行的代码 
    begin 
      while not Terminated do
      begin 
        //Form1.BitBtn1.Click; 
        //To do event
      end;
    end; 
      

  2.   


    procedure RunEvent;
    begin
      Form1.Bitbtn1.click;
    end;procedure ConServer.Execute;  //线程执行的代码 
    begin 
      while not Terminated do 
      begin 
        //Synchronize(RunEvent); 
        //To do event 
      end; 
    end; 
      

  3.   

    呵呵,liangpei2008,你害他呀。
    你这样告诉他,他的程序死定了。CPU瞬间上100%
      

  4.   

    procedure ConServer.Execute;  //线程执行的代码 
    var
       count: integer;
    begin
      count := 0; //点button的次数,最多10次.
      while (not Terminated) and (count<10) do 
      begin 
        //Synchronize(RunEvent); 
        //To do event 
        inc(count);
      end; 
    end; 
      

  5.   

    谢谢,csdn规定,发帖一天之后才允许加分.我明天再加点分.感谢 各位  ,线程可以循环执行了.且CPU不是100%哦奇怪
    (*****线程所在的单元******)
    unit unmythread;
    type
      TMyThread = class(TThread)(*****调用线程的单元*****)
    unit unmain;procedure TFrmMain.button1Click(Sender: TObject); //按钮1的单击事件
    var
      threadmyconserver:  TMyThread;
    begin
      threadmyconserver:=TMyThread.Create(False);
    end;我想在 unmain 单元的任何 过程或函数 中终止线程的执行.请问如何操作,比如说 adoquery1.recordcount=0的时候?var
      threadmyconserver:  TMyThread; 这句话放错了,但是我不知道放到哪里呢?
    望指点!
      

  6.   

    procedure ConServer.Execute;  //线程执行的代码 
    begin 
      while not Terminated do 
      Form1.BitBtn1.Click; 
    end;