예제 #1
0
        public void Clear()
        {
            if (_buffered != null)
            {
                _buffered.Release();
                _buffered = null;
            }

            while (_pending.Count > 0)
            {
                _pending.Dequeue().Release();
            }
        }
예제 #2
0
        /// <summary>
        /// 清理
        /// </summary>
        public void Clear()
        {
            if (_buffered != null)
            {
                _buffered.Release();
                _buffered = null;
            }

            while (_pending.Count > 0)
            {
                //_pending.Dequeue().Release();
                Gram gram = null;
                if (_pending.TryDequeue(out gram))
                {
                    gram.Release();
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 取出要发送的数据
        /// </summary>
        /// <returns></returns>
        public Gram Dequeue()
        {
            Gram gram = null;

            if (_pending.Count > 0)
            {
                //_pending.Dequeue().Release();
                if (_pending.TryDequeue(out gram))
                {
                    gram.Release();//???why
                }
                gram = null;
                if (_pending.Count > 0)
                {
                    //gram = _pending.Peek();
                    _pending.TryPeek(out gram);
                }
            }

            return(gram);
        }