Calcular o uso da CPU para um processo do Windows?

Dado um ID de processo, como posso obter o carregamento da cpu deste processo com c #?

Eu tentei usar o PerformanceCounter como descrito emc # calcula o uso da CPU para um aplicativo específico

Eu também tentei pegar manualmente dois valores do tempo total da CPU para o processo dentro de um período de tempo e dividir o delta-cpu-time com o delta-total-time.

Ambos os métodos parecem funcionar bem no começo, mas se eu colocar o meu aplicativo ao lado do gerenciador de tarefas do Windows meu aplicativo sempre mostra o dobro do que o gerenciador de tarefas faz. Eu tentei atualizar com vários timesteps de 10ms a 10sec e obter o mesmo resultado o tempo todo.

Hmm, percebi quando eu escrevi isso que poderia ser algum tipo de problema dual core ...

questionAnswers(1)

yourAnswerToTheQuestion