我一直认为用Synchronize调用附属线程的方法,其实并没实现多线程,附属线程的方法仍
在主线程中执行,附属线程应该什么也没做我便了一个测试程序
unit1的代码如下:var i;integer;implementationuses unit2;{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
  if test1=nil then
  test1:=test.create(true);
  test1.resume;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(i);
  edit1.Text:=inttostr(i);
end;end.线程的代码如下:
var test1:test=nil;implementation{ test }procedure test.Execute;
begin
while(true) do begin
  //Synchronize(add);
  add;
  self.Suspend;
end;
end;procedure test.add();
var i,j:integer;
begin
  for i:=1 to 400000000  do
  inc(j,round(abs(sqrt(i))));
end;end.如果用Synchronize,在主界面单击按钮后,edit1.Text有5秒左右不变
直接调add,edit1.Text一直增加请各位大侠指点,谢谢先