在列表框中列出高优先级进程
本文关键字:高优先级 进程 列表 | 更新日期: 2023-09-27 17:58:38
正是标题所说的,
我需要帮助弄清楚如何在列表框中列出高优先级进程。我可以在列表框中调出所有流程,但未经过滤。
Process[] allprocs;
private void GetProccesses()
{
allprocs = Process.GetProcesses();
if(Convert.ToInt32(ProcNumLabel.Text) != allprocs.Length)
{
ProcList.Items.Clear();
for(int i=0; i<allprocs.Length; i++)
{
ProcList.Items.Add(allprocs[i].ProcessName);
}
ProcNumLabel.Text = allprocs.Length.ToString();
}
我有一个标签,用来统计当前列表中的进程数量。高优先级列表框是我想做的下一步。
添加:
for(int i=0; i<allprocs.Length; i++)
{
ProcList.Items.Add(allprocs[i].ProcessName);
if(allprocs[i].PriorityClass == ProcessPriorityClass.High)
{
HiList.Items.Clear();
HiList.Items.Add(allprocs[i].ProcessName);
}
}
ProcNumLabel.Text = allprocs.Length.ToString();
解决了我的问题。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
GetAllProcesses();
}
private void GetAllProcesses()
{
AllProcBox.Items.Clear();
HiPriBox.Items.Clear();
foreach(System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if (p.BasePriority == 13)
{
HiPriBox.Items.Add(p.ProcessName);
}
if (p.BasePriority < 13)
{
AllProcBox.Items.Add(p.ProcessName);
}
}
}
把工作做完。
Windows不喜欢"ProcessPriorityClass.High"
尝试
allprocs = Process.GetProcesses().Where(p=>p.PriorityClass == PriorityClass.High).ToArray();
确保您有using system.linq