我定义了一个时间间隔,TimeSpan CPUTime;
然后想从当前的进程中读取CPU的总的处理时间,
CPUTime = processes[i].TotalProcessorTime;//processes[i]是一个进程组
不过编译的时候给我报错,说是不能访问,请问各位大侠是什么原因啊,在下是菜鸟,还请多多帮助啊,谢谢了

解决方案 »

  1.   

    如果processes[i]从没有启动过的话,在运行时的确会报错,但编译还是可以通过的。你那里报的是什么错
      

  2.   

    如果没有与Processes[i]相关联的进程的话,编译可以,但运行时会报"没有与对象相关联的进程"这个异常,如果是这个异常的话,注意检查一下看你的这个对象是否已关联了进程...
      

  3.   

    不好意思,没说好,编译的时候过不去,就是给我一个异常,说是“拒绝访问”,下面是代码:
    private void ListAllProcess()
            {
                string processName;
                int processID;
                int threadsNumber;
                TimeSpan CPUTime;
                int processMemory;
                listView1.Items.Clear();
                Process[] processes = Process.GetProcesses();
                for (int i=0;i<processes .Length ;i++)
                {
                    processName = processes[i].ProcessName;
                    processID = processes[i].Id;
                    threadsNumber = processes[i].Threads.Count;
                    CPUTime = processes[i].TotalProcessorTime;
                    processMemory = processes[i].WorkingSet;
                    string[] subItem = new string[]
                        {
                            processName,
                            processID.ToString(), threadsNumber.ToString(),
                            string.Format("{0:00}:{1:00}:{2:00}", CPUTime.Hours, CPUTime.Minutes, CPUTime.Seconds),
                            string.Format("{0:###}", processMemory/1024)
                        };
                    listView1.Items.Insert(i, new ListViewItem( subItem ));
                }
            }
      

  4.   

    代码没什么问题,但有些进程是拒绝访问的..比如说"idle"