如何在NET Core中获取CPU使用率
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍"如何在NET Core中获取CPU使用率",在日常操作中,相信很多人在如何在NET Core中获取CPU使用率问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年11月09日如何在NET Core中获取CPU使用率
这篇文章主要介绍"如何在NET Core中获取CPU使用率",在日常操作中,相信很多人在如何在NET Core中获取CPU使用率问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何在NET Core中获取CPU使用率"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在 .NET Framework 中,很多人会用 PerformanceCounter 类做这件事情,
如下代码:
public class Program { public static void Main(string[] args) { while (true) { var cpuUsage = GetCpuUsageForProcess(); Console.WriteLine(cpuUsage); } } private static int GetCpuUsageForProcess() { var currentProcessName = Process.GetCurrentProcess().ProcessName; var cpuCounter = new PerformanceCounter("Process", "% Processor Time", currentProcessName); cpuCounter.NextValue(); return (int)cpuCounter.NextValue(); } }但 PerformanceCounter 在.NETCore 中是没有的,所以只能采用其他方式了,其实在 System.Diagnostics.Process 类中有一个 TotalProcessorTime 属性,它可以准实时的统计当前进程所消耗的CPU处理器时间,
如下代码:
class Program { public static async Task Main(string[] args) { var task = Task.Run(() => ConsumeCPU(50)); while (true) { await Task.Delay(2000); var cpuUsage = await GetCpuUsageForProcess(); Console.WriteLine(cpuUsage); } } public static void ConsumeCPU(int percentage) { Stopwatch watch = new Stopwatch(); watch.Start(); while (true) { if (watch.ElapsedMilliseconds > percentage) { Thread.Sleep(100 - percentage); watch.Reset(); watch.Start(); } } } private static async Task GetCpuUsageForProcess() { var startTime = DateTime.UtcNow; var startCpuUsage = Process.GetCurrentProcess().TotalProcessorTime; await Task.Delay(500); var endTime = DateTime.UtcNow; var endCpuUsage = Process.GetCurrentProcess().TotalProcessorTime; var cpuUsedMs = (endCpuUsage - startCpuUsage).TotalMilliseconds; var totalMsPassed = (endTime - startTime).TotalMilliseconds; var cpuUsageTotal = cpuUsedMs / (Environment.ProcessorCount * totalMsPassed); return cpuUsageTotal * 100; } } 可以看到程序每2s输出一次,观察到 output 和 任务管理器 中的CPU利用率基本是一致的。
到此,关于"如何在NET Core中获取CPU使用率"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
使用率
学习
代码
更多
帮助
实用
一致
接下来
事情
任务
利用率
处理器
实时
属性
文章
方式
方法
时间
理论
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
军工软件开发原则
软件开发课程总结文案
两台服务器如何做虚拟化
网络安全预警级别可分为
北仑嵌入式软件开发设计
用vs连接数据库
ug刀具数据库部件材料
网络安全架构实战
网络安全博览会神器
山西赛盾测评网络安全有限公司
华众网络安全
网络安全日报题目
华为鲲鹏网络安全
武汉企舰网络技术有限公司
软件开发程序员的岗位职责
从数据库管理系统导出数据太麻烦
新建本地数据库
怀柔区综合网络技术服务系统
驻点软件开发可以做吗
黄浦区网络技术服务流程
数据库总是卡死怎么办
web服务器上创建网站的方法
华为机架式服务器特点
数字地图数据库的技术
网络安全法有关的司法解释
mysql数据库如何选择索引
软件开发的泛型
软件开发就业的威胁
高校数据库深入学院宣传方案
英雄联盟官方服务器怎么登陆