中国开发网: 论坛: 程序员情感CBD: 贴子 80884
没脾气2x: 如果是 .NET 托管线程的话,在给线程 Abort() 的时候会在线程中引发 ThreadAbortException 异常
这样的话,在线程中既可捕获这个异常,又可进行 finally。

但是在 VC、Delphi 等中,强制终止线程是否会进入 finally 还是个问题呢(我感觉应该不是,不过你开始说写 finally 就解决了,我以为也会进入 finally 呢)

我建议你在线程的处理中加上一个是否结束状态标志做处理。想停止该线程时改变这个标志,然后等待线程正常退出。

Delphi 的 TThread 类,在 Terminate 之后,会改变 Terminated: Boolean 为真。线程中判断这个值,如果为真就该做退出的处理了。在线程外对线程实体使用 WaitFor 等待线程真正结束。
Notemper2x 3.1 ( ̄ε( ̄#)
没脾气2x 之 个人综合篇: http://notemper2x.cndev.org/
我的 panoramio 相册: http://panoramio.com/user/zhaixudong
我的 flickr相册: http://www.flickr.com/photos/notemper2x/



QQ号20250出售,售价400,000元整(5位、皇冠80级、VIP7)a

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录