关于.net:线程中止状态问题

Threading aborted state problem

我有一个库来管理基于.NET 3.5的线程。当我尝试将其升级到.NET 4.0时,根据Thread.Abort方法,某些单元测试失败。

简而言之,这些单元测试从创建到停止一直跟踪线程状态。线程中止时,这些单元测试会从运行-> AbortRequested->中止->停止中跟踪状态。该序列在使用VS2008或VS2010的.NET 3.5上完全相同。在我将其升级到VS2010上的.NET 4.0之前,单元测试失败。结果是线程保持中止状态。

我已经检查了有关Thread.Abort的MSDN,这里写着:"在线程上调用Abort之后,线程的状态包括AbortRequested。由于成功调用Abort导致线程终止后,线程的状态线程更改为"已停止"。"

有人有同样的问题吗? .NET 4.0线程行为正确吗?如果线程保持中止状态,是否有影响?


我复制。 继续并假设它是一个错误修复。 使状态回到已停止并没有多大意义。

这里有关于它的旧反馈报告。 他们承认.NET 2.0中的行为与记录的行为不匹配,但为时已晚,无法解决此问题。 尽管已关闭,但我强烈怀疑他们已将其修复为4.0。 具有讽刺意味的是,看起来该行为已在MSDN库中更新,现在又与实际行为不匹配。