Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 线程出现安全异常。中止_.net_Multithreading_Abort_Securityexception - Fatal编程技术网

.net 线程出现安全异常。中止

.net 线程出现安全异常。中止,.net,multithreading,abort,securityexception,.net,Multithreading,Abort,Securityexception,调用Thread.Abort时,我收到以下异常: 请求类型的权限 'System.Security.Permissions.SecurityPermission,mscorlib, 版本=2.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089' 失败了 为什么会发生这种情况?调用线程。中止需要CAS(代码访问安全)权限SecurityPermission\ControlThread。这与用户的权限无关,而是与.NET CLR授予代码的权限有关 Control

调用
Thread.Abort
时,我收到以下异常:

请求类型的权限 'System.Security.Permissions.SecurityPermission,mscorlib, 版本=2.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089' 失败了


为什么会发生这种情况?

调用线程。中止需要CAS(代码访问安全)权限SecurityPermission\ControlThread。这与用户的权限无关,而是与.NET CLR授予代码的权限有关

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


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

给出更多的细节,您的应用程序在做什么?你什么时候叫停?以管理员用户或操作系统等的普通用户身份运行。@Davide:线程从服务器检索数据。我在Windows7上以普通用户的身份运行。它只是一个基本的桌面应用程序,尽管它确实使用了一些DLL