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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)

我知道不应该使用

Thread.Abort()

但我从未得到过很好的解释。是否存在性能损失或隐藏的问题?

提问于
用户回答回答于

如果你因为认为它正在运行恶意代码而中止了一个线程,那么这个恶意代码可能会抵抗它自己的破坏。

如果你有一个长时间运行的操作涉及你不拥有的代码,那么必须清理干净,正确的方法是将代码放在它自己的进程中,而不是它自己的线程中。(并且最好在该进程中受高度安全限制的应用程序域中)。然后,你可以终止进程。

用户回答回答于

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

该线程可能已经锁定并处于更改某个共享状态的中间,并且Thread.Abort将撤销锁定并使共享状态损坏。

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问9 回答
  • 优惠活动秘书

    0 粉丝2 提问8 回答
  • _逗你玩_

    腾讯 · 客户端安全 (已认证)

    4 粉丝4 提问5 回答
  • uncle_light

    5 粉丝518 提问5 回答

扫码关注云+社区

领取腾讯云代金券