在任务管理器C#

时间:2017-10-19 06:06:13

标签: c# process taskmanager

我需要在C#中获取进程的“提交大小”(Windows任务管理器>详细信息)。

enter image description here

乍一看Process课程没有提供相关属性。 有人可以帮帮我吗?

被修改

 private static void ShowCommitSize(string processName)
    {
        Process process = Process.GetProcessesByName(processName).FirstOrDefault();
        if (process != null)
        {
            var pagedMemMb = ConvertBytesToMegabytes(process.PagedMemorySize64);
            Console.WriteLine(process.ProcessName + "\t" + process.Id + "\t" + Math.Round(pagedMemMb, 3) + " MB");
        }
        Console.ReadLine();
    }    

    static double ConvertBytesToMegabytes(long bytes)
    {
        return (bytes / 1024f) / 1024f;
    }

输出

我计算的提交大小与任务管理器中的“提交大小”之间存在差异。有什么想法吗?

enter image description here

解决方案

private static void ShowCommitSize(string processName)
    {
        var process = Process.GetProcessesByName(processName).FirstOrDefault();
        if (process != null)
        {
            var memKb = ConvertBytesToKilobytes(process.PagedMemorySize64);
            Console.WriteLine(process.ProcessName + "\t" + process.Id + "\t" + memKb.ToString("N") + " K");
        }
        Console.ReadLine();
    }    

    static double ConvertBytesToKilobytes(long bytes)
    {
        return (bytes / 1024f);
    }

1 个答案:

答案 0 :(得分:2)

此值位于PagedMemorySize64属性中。文档提到这个“页面文件大小”进程性能计数器和here记录了这在Vista / 2008上的任务管理器中被称为“提交大小”(我假设更新的操作系统)。