private static double CalculateMinDelay(double frequency_hz, PeriodicThreadTightness tightness) { var delay_msec = FreqToMsec(frequency_hz); switch (tightness) { case PeriodicThreadTightness.Busy: return(0); case PeriodicThreadTightness.High: return(delay_msec * 0.25); case PeriodicThreadTightness.Medium: return(delay_msec * 0.5); case PeriodicThreadTightness.Low: return(delay_msec * 0.75); default: throw new ArgumentException("Unsupported PeriodicThreadTightness"); } }
public PeriodicThread(IUpdatable updatable, double frequency_hz, PeriodicThreadTightness tightness = DefaultTightness) : base(frequency_hz, tightness) { _updatable = updatable; }
public BasePeriodicThread(double frequency_hz, PeriodicThreadTightness tightness = DefaultTightness) : this( BasicMath.Round(FreqToMsec(frequency_hz)), BasicMath.Round(CalculateMinDelay(frequency_hz, tightness))) { }