在列表框中列出高优先级进程

本文关键字:高优先级 进程 列表 | 更新日期: 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