measure actual sample time, not the time passed to Thread.Sleep, use Stopwatch for times