线程为:
procedure aa.Execute;
var i:integer;
begin
inherited;
freeonterminate := true;
i:=0;
{ Place thread code here }
while (true) do
begin form1.Edit1.Text:=inttostr(i);
i:=i+1;
end;
end;
end.调用线程procedure TForm1.Button1Click(Sender: TObject);
begin
bb:=unit2.aa.Create(false);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
bb.Terminate; 不起作用 为什么??????????????? 请高手指点end;
procedure aa.Execute;
var i:integer;
begin
inherited;
freeonterminate := true;
i:=0;
{ Place thread code here }
while (true) do
begin form1.Edit1.Text:=inttostr(i);
i:=i+1;
end;
end;
end.调用线程procedure TForm1.Button1Click(Sender: TObject);
begin
bb:=unit2.aa.Create(false);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
bb.Terminate; 不起作用 为什么??????????????? 请高手指点end;
1. 线程中要输出到(操作)界面, 要用synchronize; // 参见delphi的线程例子代码;
2. 你的 while (true) do begin... end; 中没有留多少机会给其他线程执行的机会, 你的程序启动后, cpu一定到100%, 而且你用鼠标按button2都很困难;
3. 建议你先熟悉delphi的线程例子程序, 再多看一些其他人写的线程相关的代码;
4. 重点提示: 在普通的程序界面操作中要用好application.processmessage; 在线程代码中要用好 Sleep函数;