首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Thread.Abort()有什么问题

使用Thread.Abort()有什么问题
EN

Stack Overflow用户
提问于 2009-10-13 10:01:58
回答 5查看 35.3K关注 0票数 69

所以我知道你不应该用

Thread.Abort()

但从来没有人给我一个好的解释。是否存在性能损失或一些隐藏的陷阱?

我知道你不能忽略/吞下ThreadAbortException (这是有道理的)

EN

回答 5

Stack Overflow用户

发布于 2009-10-13 10:05:08

因为如果您知道线程处于某种可以中止的安全状态,那么您肯定可以安排更好的通信,并让线程干净地退出。

线程可能已经获得了一个锁,并且正在更改某个共享状态,而Thread.Abort将撤销该锁并使共享状态被破坏。

票数 20
EN

Stack Overflow用户

发布于 2009-10-13 11:06:33

总之。任何IDisposable对象都不能被释放。任何锁定的对象都不能解锁。任何必须100%执行的事情都将永远不会完成。

票数 9
EN

Stack Overflow用户

发布于 2009-10-13 10:05:06

当您在另一个线程上调用Thread.Abort()时,一个ThreadAbortException被注入到该线程的流中。如果你幸运的话,代码会很好地处理这个问题,并在定义良好的状态下中止。问题是你没有办法弄清楚你是否在每种情况下都是幸运的,所以如果你更喜欢安全而不是抱歉,在其他线程上调用Thread.Abort不是一个好主意。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1559255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档