.net核心中的CPU使用率(至少在Windows上)

Xav*_*eña 10 .net c# .net-core .net-standard

所以PerformanceCounter在dotnet核心中消失了.我理解这是因为它不兼容Linux.

这里本评论:(什么是性能计数器.NET核心的故事)似乎暗示,如果我愿意只在Windows上运行它,我可以"利用Windows的特定功能",但我不知道我如何将其整合到dotnet核心中.

我愿意做这个解决方法的原因是保留dotnet核心代码库,这样一旦有跨平台解决方案,我就不必迁移PerformanceCounter.

总结一下我的问题:如何在Windows上运行时运行dotnet核心的CPU使用率?


我发现的其他相关帖子:

  • 这个解决方案似乎表明这Process.GetCurrentProcess()已经足够了,我不太明白(PerformanceCounter提供了机器的完整CPU使用率).

  • 循环遍历所有进程(正如其他帖子似乎暗示的那样?)是不可行的(它会抛出某些进程的异常)并且它看起来很慢,这对我的用例来说是一个问题.

Mar*_*tin 2

从 .NET Core 3.0 开始,性能计数器 API 再次成为 BCL 的一部分,并且也支持 Linux: