关闭

.NET获取当前程序所在电脑的CPU和内存使用率

3160人阅读 评论(0) 收藏 举报
分类:


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和内存都很闲的时候,做一些要做的工作,以免人在使用的时候同时运行造成电脑卡机。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

C#获取CPU的利用率

[STAThread]        public static void Main()        {    ...
  • selfxd
  • selfxd
  • 2007-07-16 14:21
  • 1002

c#获取系统和指定进程的CPU和内存占用率

  • 2016-03-01 15:27
  • 38KB
  • 下载

C#获取特定进程CPU和内存使用率

C#获取特定进程CPU和内存使用率 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentPro...
  • minsenwu
  • minsenwu
  • 2015-02-10 15:28
  • 13641

C#获取CPU占用率、内存占用、磁盘占用、进程信息

using System; using System.Collections.Generic; using System.Diagnostics; using System.Threadi...
  • chclvzxx
  • chclvzxx
  • 2011-11-21 16:37
  • 3431

C#获得Cpu使用率类

using System; using Microsoft.Win32; using System.Diagnostics; using System.Runtime.InteropServic...
  • adsdassadfasdfasdf
  • adsdassadfasdfasdf
  • 2010-08-27 14:12
  • 6119

C#获取CPU占用率、内存占用、磁盘占用、进程信息

以下是代码片段: using System;  using System.Collections.Generic;  using System.Diagnostics;  using Syst...
  • weizhiai12
  • weizhiai12
  • 2011-12-09 16:36
  • 6599

.NET(C#):获取进程的CPU使用状况

 第一个是通过手动的方法来计算CPU使用比例:CPU使用比例 = 在间隔时间内进程的CPU使用时间 除以 计算机逻辑CPU数量。 使用Process类的UserProcessorTime和Pr...
  • sushe512
  • sushe512
  • 2014-04-08 15:23
  • 847

ASP.NET(c#)中取得当前计算机CPU 内存使用率等相关信息

在Visual  C#中调用API的基本过程:    首先,在调用API之前,你必须先导入System.Runtime.InteropServices这个名称空间。该名称空间包含了在Visual  C...
  • guopeng_028
  • guopeng_028
  • 2006-01-03 13:51
  • 1927

asp.net中获取本机的相关信息!(CPU、内存、硬盘序列号等)

// 注意:首先要在项目bin目录中添加引用 System.Management using System; using System.Collections.Generic; using ...
  • dxnn520
  • dxnn520
  • 2012-11-24 06:53
  • 4964

C#查看程序占用系统的内存

using System.Diagnostics; // 获得为该进程(程序)分配的内存. 做一个计时器,就可以时时查看程序占用系统资源 publi...
  • suwei19870312
  • suwei19870312
  • 2010-08-23 15:05
  • 3454
    个人资料
    • 访问:945784次
    • 积分:11541
    • 等级:
    • 排名:第1533名
    • 原创:272篇
    • 转载:23篇
    • 译文:11篇
    • 评论:180条
    提示
    各位朋友,有什么需要交流的最好用邮件哦,那样我看到的及时很多,发站内信我不经常看。

    新浪博客:
    http://blog.sina.com.cn/pukuimin
    博客专栏
    最新评论