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

时间:2016-07-26 18:51:57

标签: c#

标题是什么,

我需要帮助找出如何列出列表框中的高优先级进程。我能够提取列表框中的所有进程,但未经过滤。

     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不喜欢&#34; ProcessPriorityClass.High&#34;

1 个答案:

答案 0 :(得分:0)

psql

确保您拥有allprocs = Process.GetProcesses().Where(p=>p.PriorityClass == PriorityClass.High).ToArray();