博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET获取当前程序所在电脑的CPU和内存使用率
阅读量:6077 次
发布时间:2019-06-20

本文共 2559 字,大约阅读时间需要 8 分钟。

using System;using System.Diagnostics;using System.Text;using System.Runtime.InteropServices; namespace ConsoleApplication1{    class Program    {        public static PerformanceCounter cpu;        //public static ComputerInfo cif;        static void Main(string[] args)        {            cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total");           // cif = new ComputerInfo();            MEMORY_INFO MemInfo;            MemInfo = new MEMORY_INFO();            while(true)            {                GlobalMemoryStatus(ref  MemInfo);                Console.WriteLine(MemInfo.dwMemoryLoad.ToString() + "%的内存正在使用");                var percentage = cpu.NextValue();                Console.WriteLine(percentage + "%的CPU正在使用\n");                System.Threading.Thread.Sleep(2000);            }        }        [DllImport("kernel32")]        public static extern void GetSystemDirectory(StringBuilder SysDir, int count);        [DllImport("kernel32")]        public static extern void GetSystemInfo(ref  CPU_INFO cpuinfo);        [DllImport("kernel32")]        public static extern void GlobalMemoryStatus(ref  MEMORY_INFO meminfo);        [DllImport("kernel32")]        public static extern void GetSystemTime(ref  SYSTEMTIME_INFO stinfo);      }    //定义CPU的信息结构      [StructLayout(LayoutKind.Sequential)]    public struct CPU_INFO    {        public uint dwOemId;        public uint dwPageSize;        public uint lpMinimumApplicationAddress;        public uint lpMaximumApplicationAddress;        public uint dwActiveProcessorMask;        public uint dwNumberOfProcessors;        public uint dwProcessorType;        public uint dwAllocationGranularity;        public uint dwProcessorLevel;        public uint dwProcessorRevision;    }    //定义内存的信息结构      [StructLayout(LayoutKind.Sequential)]    public struct MEMORY_INFO    {        public uint dwLength;        public uint dwMemoryLoad;        public uint dwTotalPhys;        public uint dwAvailPhys;        public uint dwTotalPageFile;        public uint dwAvailPageFile;        public uint dwTotalVirtual;        public uint dwAvailVirtual;    }    //定义系统时间的信息结构      [StructLayout(LayoutKind.Sequential)]    public struct SYSTEMTIME_INFO    {        public ushort wYear;        public ushort wMonth;        public ushort wDayOfWeek;        public ushort wDay;        public ushort wHour;        public ushort wMinute;        public ushort wSecond;        public ushort wMilliseconds;    } }

可以循环判断cpu和内存使用率,来做相应的功能,比如迅雷的空闲下载就和这个差不多的,就是电脑cpu和内存都很闲的时候,做一些要做的工作,以免人在使用的时候同时运行造成电脑卡机。

转载地址:http://mqagx.baihongyu.com/

你可能感兴趣的文章
input标签placeholder属性IE8及以下版本的兼容性问题
查看>>
怎么用U盘重装苹果系统
查看>>
[转摘]使用异步方式调用同步方法
查看>>
四则运算的在线答题(判断对错,记录错题)
查看>>
Python基础教程(第2版 修订版) pdf
查看>>
python数据类型之二
查看>>
ubuntu下更改默认python版本的方法
查看>>
针对文件系统和网络性能的测试
查看>>
专题5.外汇市场分析与投资
查看>>
24、AES RSA加密处理记录
查看>>
处理结果集的相关属性和方法?
查看>>
javascript原型深入解析2--Object和Function,先有鸡先有蛋
查看>>
POJ 1001 高精度乘法
查看>>
json+underscore+Node 小例子
查看>>
Google Play市场考察报告
查看>>
***浅析JQuery中的html(),text(),val()区别
查看>>
数组与对象的转换
查看>>
Entity Framework Code-First(9.1):DataAnnotations - Key Attribute
查看>>
yii2异常
查看>>
未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序...
查看>>