主窗体是一个循环,先启动线程,当主窗体查到线程完成使edit1.text:='1',进入下一个循环,再启动线程,当当主窗体查到线程完成使edit1.text:='2'。
问题1 :如何让主窗体知道线程完成了,
    2:如何让主窗体等线程执行完再执行下一个循环。本人一点思路也没有,请各们大鸟指点一下,最好有个例子

解决方案 »

  1.   

    delphi 线程等待函数 WaitForSingleObject 百度一下。
      

  2.   

    楼上是借助 wait 函数把线程同步化,这是一种方法,写起来稍微复杂一点。另一种方法是保持异步状态,在子线程中定义一个 TNotifyEvent 事件,主线程用事件例程来监视。子线程执行完后激活此事件,主线程就可以接管控制权了。
      

  3.   

    虽然可以用信号量来做,不过主线程一直卡在你的循环里面?
    这个异步通知窗体就行了:
    1、线程完成发个消息给窗体
    2、线程类设置个事件函数,Synchronize 函数调用你的事件,
      

  4.   

    TThread.CheckTerminated 检查
      

  5.   

    Synchronize