public void Add(ParameterChangeQueueItem queueItem)
 {
     lock (_parameterChangeQueueLock)
     {
         _parameterChangeQueue.Add(queueItem);
     }
 }
        internal bool ShouldSkip(ParameterChangeQueueItem queueItem)
        {
            bool skipProcessing = false;

            Cleanup();

            lock (_parameterChangeQueueLock)
            {
                foreach (var qi in _parameterChangeQueue)
                {
                    if (qi.Equals(queueItem) && queueItem != qi)
                    {
                        if (queueItem.Timestamp < qi.Timestamp)
                        {
                            skipProcessing = true;
                            break;
                        }
                    }
                }
            }

            return(skipProcessing);
        }