Thread.Abort的安全异常

时间:2011-08-29 00:30:55

标签: .net multithreading abort securityexception

当我致电Thread.Abort时,我收到以下异常:

  

请求类型的许可   'System.Security.Permissions.SecurityPermission,mscorlib,   Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'   失败。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

调用Thread.Abort需要CAS(代码访问安全性)权限SecurityPermission \ ControlThread。这与用户的权限无关,而是与.NET CLR授予您的代码的权限无关。

ControlThread权限被视为“危险”权限。默认情况下,在.NET 2.0中,它仅授予在计算机上本地运行的程序集。我猜你的程序集要么从本地机器外部加载,要么在托管的CLR实例(例如ASP.NET)中运行。无论哪种方式,都有适当的机制来增加程序集的CAS权限。如果您需要帮助,则需要更具体地说明装配的装配方式。

也就是说,使用Thread.Abort中止线程通常是not recommended。您可能需要考虑投资另一种方法来停止线程执行,而不是花时间尝试避免SecurityException。