我用当前活动用户的正在运行的进程填充ListBox(listRAM
):
Process[] RAM = Process.GetProcesses();
Process[] sameAsthisSession = (from c in RAM where c.SessionId == Process.GetCurrentProcess().SessionId select c).ToArray();
foreach (var p in sameAsthisSession)
{
listRAM.Items.Add(p.ProcessName);
}
listRAM.Sorted = true;
这些过程将按
listRAM.Sorted = true;
按字母顺序排序。我只是很好奇,是否可以按内存使用量对它们进行排序,即获取每个进程的内存使用率并将它们通过循环添加到列表框中?
最佳答案
请尝试以下操作:
var RAM = Process.GetProcesses();
var procs = RAM.Where(x => x.SessionId == Process.GetCurrentProcess().SessionId)
.OrderByDescending(x => x.PrivateMemorySize64)
.ToList();
foreach (var p in procs)
{
listRAM.Items.Add(p.ProcessName);
}