示例#1
0
        public ProcessInfo sample(Process p)
        {
            TimeSpan timespan = p.TotalProcessorTime;
            //            if (timespan.TotalMilliseconds == lastProcessorTime.TotalMilliseconds)
            //                return null;

            ProcessInfo info = new ProcessInfo();
            info.no = p.Id;
            info.name = p.ProcessName;
            //stat cpu info

            info.cpuTime = timespan.TotalMilliseconds - lastProcessorTime.TotalMilliseconds;
            lastProcessorTime = timespan;

            //stat the io information
            IO_COUNTERS ioc;
            WinApi.GetProcessIoCounters(p.Handle, out ioc);
            info.dread = ioc.ReadTransferCount - lastio.ReadTransferCount;
            info.dwrite = ioc.WriteTransferCount - lastio.WriteTransferCount;
            lastio = ioc;

            return info;
        }
示例#2
0
 public static extern bool GetProcessIoCounters(IntPtr ProcessHandle, out IO_COUNTERS IoCounters);