/// <summary>
        /// Thread-safe version of Queue.Enqueue(T).
        /// </summary>
        /// <param name="element">Object to enqueue.</param>
        public void Enqueue(T element)
        {
            bool wakeup = false;

            lock (_queueLock)
            {
                _queue.Enqueue(element);
                if (_queue.Count == 1)
                {
                    wakeup = true;
                }
            }
            if (wakeup && _node != null)
            {
                _node.WakeUp();
            }
        }