Unit ThrdUinterfaceuses classes;type
  TTestThread=class(TThread)
              private
                answer:integer;
              protected
                procedure GiveAnswer;
                procedure Execute;override;
              end;implementation
... ...
请问:如果我创建一个TTestThread的实例,系统必然马上调用Execute,然后我又调用Synchronize(GiveAnswer),
       是不是“又”创建了一个新的线程,Synchronize是在调用新线程的方法?

解决方案 »

  1.   

    Synchronizef():用来同步界面线程的,就是在你的新开线程中操作界面的控件必须在这个函数里执行。
      

  2.   

    那如果我用Synchronize调用GiveAnswer时是不是就是在创建新的线程?
      

  3.   

    肯定不是了,他只不过占用界面线程的时间片来完成GiveAnswer的工作。
    新的线程的创建总是显式的createThread等函数来完成的,无缘无故不会有新的线程创建。