日期:2014-05-18  浏览次数:20394 次

(暮白兄、孟子等高手进)我不知道这是不是线程问题给点提示
public   bool   Kill(   string   exeName   )
    {
        string   isrunning   =   "0 ";
        Process[]   myProcesses   =   Process.GetProcesses(Request.UserHostAddress);
    foreach(Process   myProcess   in   myProcesses)
    {
        if   (   myProcess.ProcessName   ==   exeName   )
        {
            try
{
//myProcess.WaitForExit(120);
myProcess.Kill();
isrunning   =   "1 ";
}
catch
{
isrunning   =   "0 ";
}
break;
}
}
if   (   isrunning   ==   "1 "   )
{
return   true;
}
else
{
return   false;
}
}

------解决方案--------------------
是否能成功关闭一个线程取决于当前用户对该线程的控制权限。这份大致两种:1.没有控制权,比如普通用户想要关系统进程(asp.net用户的权限如果没有设置过是在安装.net的时候系统设置的,属于受限制的超级用户把)2.进程被其他用户占有。无法相应就无法关闭,除非你能在线程管理员ProcessManager那样的系统权限去强制杀。