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

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

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

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

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


我发现的其他相关post:

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

  • 循环遍历所有进程(正如这个其他post似乎暗示的那样 ?)是不可行的(它为某些进程抛出exception)并且它看起来很慢也是我的用例的问题。