So PerformanceCounter
is gone in dotnet core. I understand it was because it was not Linux-compatible.
This comment here: ( What is the story of Performance Counters for .NET Core? ) seems to suggest that if I was willing to run it only on Windows I could "make use of Windows-specific features", but I don't know how I could integrate that in dotnet core.
The reason I am willing to do this workaround is to keep the dotnet core codebase so I don't have to migrate once there is a cross-platform solution for PerformanceCounter
.
So to summarize my question: how can I run the CPU usage in dotnet core when running on Windows?
Other relevant posts that I've found:
This solution seems to suggest that
Process.GetCurrentProcess()
would be enough, which I don't quite understand (PerformanceCounter
provided the full CPU usage for the machine).Looping through all processes (as this other post seem to suggest?) is not feasible (it throws an exception for some processes) and it looks pretty slow as well which is a problem for my use case.