本文共 2088 字,大约阅读时间需要 6 分钟。
using System;
using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Management; using System.Text; using System.Threading; using System.Threading.Tasks;namespace 进程监控
{ class Program { static void Main(string[] args) { Process[] processes = Process.GetProcessesByName("taskmgr"); foreach (Process instance in processes) { Console.WriteLine(""); Console.WriteLine("ProcessName:" + instance.ProcessName); try { //Console.WriteLine("提交大小\t" + instance.PagedMemorySize64 / 1024); Console.WriteLine("工作设置(内存)\t" + instance.WorkingSet64 / 1024); Console.WriteLine("线程数\t" + instance.Threads.Count); Console.WriteLine("句柄数\t" + instance.HandleCount);}
catch { } }Process p = processes[1];
//PerformanceCounter ramCounter = new PerformanceCounter("Process", "Working Set", p.ProcessName); //PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", p.ProcessName); var objQuery = new ObjectQuery("select * from Win32_Process WHERE ProcessID = " + p.Id); var moSearcher = new ManagementObjectSearcher(objQuery); DateTime firstSample = DateTime.MinValue, secondSample = DateTime.MinValue;double ProcessorUsage;
double msPassed; ulong u_OldCPU = 0; while (true) { var gets = moSearcher.Get(); foreach (ManagementObject mObj in gets) { try { if (firstSample == DateTime.MinValue) { firstSample = DateTime.Now; mObj.Get(); u_OldCPU = (ulong)mObj["UserModeTime"] + (ulong)mObj["KernelModeTime"]; } else { secondSample = DateTime.Now; mObj.Get(); ulong u_newCPU = (ulong)mObj["UserModeTime"] + (ulong)mObj["KernelModeTime"];msPassed = (secondSample - firstSample).TotalMilliseconds;
ProcessorUsage = (u_newCPU - u_OldCPU) / (msPassed * 100.0 * Environment.ProcessorCount);u_OldCPU = u_newCPU;
firstSample = secondSample; Console.WriteLine("ProcessorUsage:" + (int)ProcessorUsage); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); Console.WriteLine(ex.InnerException.Message); } } Thread.Sleep(1000); } Console.ReadLine(); } } }本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/6336593.html,如需转载请自行联系原作者