在delphi中终止一个线程

Moh*_*mad 6 delphi multithreading terminate

如何以正确的方式终止线程?线程完成后,它仍然在内存中.我正在使用Delphi 2010(Update 5).

Dav*_*nan 11

我通常描述线程终止问题的方法是强调合作.你不应该终止一个线程.相反,您应该通知线程您希望它终止.然后礼貌地等到它终止.

原因很明显.只有线程知道如何终止自身.只有线程知道它拥有什么锁,需要释放什么资源等.

如果您希望暂停或暂停线程的执行,则适用相同的参数.您应该要求它这样做,然后让线程在安全的情况下找到方便的时刻.

使用Delphi TThread,请求终止的标准方法是调用Thread.Terminate.这只不过是在线程对象中设置一个标志.这是请求.响应由内部的线程代码启动TThread.Execute.那应该定期检查其Terminated财产的价值.如果发现它是真的,它应该退出该函数.当然,在调用exit之前应该执行任何整理(释放锁定,返回资源等).

  • 究竟.您没有正常KILL线程,您发出信号.他们闭嘴. (4认同)