获取进程所有者名称很慢

时间:2018-11-29 09:59:32

标签: c# .net

我找到了以下方法来获取进程的所有者:

public string GetProcessOwner(int processId)
{
    string query = "Select * From Win32_Process Where ProcessID = " + processId;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
    ManagementObjectCollection processList = searcher.Get();

    foreach (ManagementObject obj in processList)
    {
        string[] argList = new string[] { string.Empty, string.Empty };
        int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
        if (returnVal == 0)
        {
            return argList[1] + "\\" + argList[0];
        }
    }

    return "";
}

这很好,但是非常慢。我将其与Process.GetProcesses()结合使用,大约需要20秒钟才能获得每个进程的所有者。有什么办法可以加快速度吗?

0 个答案:

没有答案