/// <summary>
        /// Set Next Frame Time
        /// </summary>
        /// <param name="frameTime">Frame Time</param>
        public bool SetFrameDuration(TimeSpan frameTime)
        {
            if (frameTime > TimeSpan.Zero)
            {
                if (frameTime < MinimumFrameTime || MinimumFrameTime.Equals(TimeSpan.Zero))
                {
                    MinimumFrameTime = frameTime;
                }

                lock (FrameTimesListLock)
                {
                    // Dequeue once we have the Maximum number of frame times
                    if (FrameTimes.Count == DefaultMaxFrames)
                    {
                        FrameTimes.RemoveAt(DefaultMaxFrames - 1);
                    }
                    FrameTimes.Insert(0, new ProteinFrameTime {
                        Duration = frameTime
                    });
                }

                return(true);
            }

            return(false);
        }
        public void AddFrameTime(TimeSpan frameTime)
        {
            if (frameTime <= TimeSpan.Zero)
            {
                return;
            }

            if (frameTime < MinimumFrameTime || MinimumFrameTime.Equals(TimeSpan.Zero))
            {
                MinimumFrameTime = frameTime;
            }

            lock (FrameTimesListLock)
            {
                // Dequeue once we have the Maximum number of frame times
                if (FrameTimes.Count == DefaultMaxFrames)
                {
                    FrameTimes.RemoveAt(DefaultMaxFrames - 1);
                }
                FrameTimes.Insert(0, new ProteinBenchmarkFrameTime {
                    Duration = frameTime
                });
            }
        }