当我致电Thread.Abort
时,我收到以下异常:
请求类型的许可 'System.Security.Permissions.SecurityPermission,mscorlib, Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' 失败。
为什么会这样?
答案 0 :(得分:2)
调用Thread.Abort需要CAS(代码访问安全性)权限SecurityPermission \ ControlThread。这与用户的权限无关,而是与.NET CLR授予您的代码的权限无关。
ControlThread权限被视为“危险”权限。默认情况下,在.NET 2.0中,它仅授予在计算机上本地运行的程序集。我猜你的程序集要么从本地机器外部加载,要么在托管的CLR实例(例如ASP.NET)中运行。无论哪种方式,都有适当的机制来增加程序集的CAS权限。如果您需要帮助,则需要更具体地说明装配的装配方式。
也就是说,使用Thread.Abort中止线程通常是not recommended。您可能需要考虑投资另一种方法来停止线程执行,而不是花时间尝试避免SecurityException。