C# - 使用 PID 杀死 process/task 的方法

C# - Method for killing a process/task using PID

我正在尝试使用 C# 创建一个 Web 服务,该服务将用于终止当前 运行ning 的 process/task。每当我尝试 运行 它并输入正确的 PID 来终止该特定任务时,我都会收到此错误消息“System.ComponentModel.Win32Exception: 'The system cannot find the file specified'”.

public string KillTask(int pid)
    {
        Process killTask = new Process();
        killTask.StartInfo.FileName = (@"C:\Windows\System32\taskkill.exe /f /pid "  + pid);
        killTask.StartInfo.RedirectStandardOutput = true;
        killTask.StartInfo.UseShellExecute = false;
        killTask.Start();
        killTask.WaitForExit();

        return "";
    }

错误信息突出killTask.Start()但是我不太明白为什么系统找不到文件。

FileName 只是可执行文件的文件名。您必须在 Arguments 属性.

中传递任何参数

例如

killTask.StartInfo.FileName = @"C:\Windows\System32\taskkill.exe";
killTask.StartInfo.Arguments = @"/f /pid "  + pid;

如果你想杀死进程(?),你可以很容易地做到

var processToKill = Process.GetProcessById(pid);
processToKill.Kill();

或使用 return 值(为什么要字符串?)

public bool KillTask(int pid)
{
    try
    {
        var processToKill = Process.GetProcessById(pid);
    }
    catch (ArgumentException) //Exception when no process found
    {
        return false;
    }

    processToKill.Kill();
    return true;
}