示例#1
0
        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");
            }
        }
示例#2
0
 public PeriodicThread(IUpdatable updatable, double frequency_hz, PeriodicThreadTightness tightness = DefaultTightness)
     : base(frequency_hz, tightness)
 {
     _updatable = updatable;
 }
示例#3
0
 public BasePeriodicThread(double frequency_hz, PeriodicThreadTightness tightness = DefaultTightness) :
     this(
         BasicMath.Round(FreqToMsec(frequency_hz)),
         BasicMath.Round(CalculateMinDelay(frequency_hz, tightness)))
 {
 }