From 426938de54f5be81ac74ec97d5cd491e00516f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Sun, 25 Apr 2010 14:40:19 +0000 Subject: [PATCH] Fixed Issue 43. --- Hardware/CPU/IntelCPU.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Hardware/CPU/IntelCPU.cs b/Hardware/CPU/IntelCPU.cs index 444b271..888753b 100644 --- a/Hardware/CPU/IntelCPU.cs +++ b/Hardware/CPU/IntelCPU.cs @@ -211,7 +211,11 @@ namespace OpenHardwareMonitor.Hardware.CPU { EstimateMaxClock(0); // estimate the max clock in MHz - estimatedMaxClock = 1e-6 * EstimateMaxClock(0.01); + List estimatedMaxClocks = new List(3); + for (int i = 0; i < 3; i++) + estimatedMaxClocks.Add(1e-6 * EstimateMaxClock(0.025)); + estimatedMaxClocks.Sort(); + estimatedMaxClock = estimatedMaxClocks[1]; lastTimeStampCount = 0; lastTime = 0; @@ -289,7 +293,8 @@ namespace OpenHardwareMonitor.Hardware.CPU { uint lsbBegin, msbBegin, lsbEnd, msbEnd; Thread.BeginThreadAffinity(); - long timeBegin = Stopwatch.GetTimestamp() + 2; + long timeBegin = Stopwatch.GetTimestamp() + + (long)Math.Ceiling(0.001 * ticks); long timeEnd = timeBegin + ticks; while (Stopwatch.GetTimestamp() < timeBegin) { } WinRing0.Rdtsc(out lsbBegin, out msbBegin);