用DELPHI写,怎么判断一个进程是否结束?
解决给分!

解决方案 »

  1.   

    我想用terminated判断,可是外部不能用只能内部用,不会
      

  2.   

    如果你设置了Thread的FreeOnTerminate为True
    那在线程外就很难判断线程是否结束,Thread虽然被Free了,但是其索引并不为nil值,所以很难判断,也许可以用
    try
      <Thread>.<某个属性>
    except
      表明线程结束
    end;
    来判断?最近我遇到这个问题时是这样解决的:
    在Thread内部加个OverFlag标志,设置Thread的FreeOnTerminate为False,在线程的Execute方法内最后加上OverFlag := True; 这样在线程外可以判断<Thread>.OverFlag是否为True,若为True,则释放线程。若不为True,则表示线程还未运行完毕。此方法还未经过大量线程同时运行的测试,欢迎各位指正。