线程的释放方式有两种:一种是线程在运行完成后自动释放,一种是手动释放. 无论是那种释放,都应该在线程停止后进行释放. 然而线程的停止也有两种情况:一种是不需要设置标志位,直接完成:一种是由于execute方法中做了循环,需要设置标志位才能停止. 如果线程已经停止并且自动释放,再去手动停止,就会报错. 下面看代码: 1.自动停止后自动释放的线程: constructor TTestThread.Create; begin inherited Create( True ); FreeOnTermin…