EventStore.Transport.Tcp.TcpConnection.TryDequeueReceivedData C# (CSharp) Метод

TryDequeueReceivedData() приватный Метод

private TryDequeueReceivedData ( ) : void
Результат void
        private void TryDequeueReceivedData()
        {
            Action<ITcpConnection, IEnumerable<ArraySegment<byte>>> callback;
            List<ArraySegment<byte>> res = null;

            lock (_receivingLock)
            {
                // no awaiting callback or no data to dequeue
                if (_receiveCallback == null || _receiveQueue.Count == 0)
                    return;

                res = new List<ArraySegment<byte>>(_receiveQueue.Count);
                while (_receiveQueue.Count > 0)
                {
                    var arraySegments = _receiveQueue.Dequeue();
                    res.Add(arraySegments);
                }

                callback = _receiveCallback;
                _receiveCallback = null;
            }
            callback(this, res.ToArray());
            uint bytes = 0;
            foreach (var tuple in res)
            {
                bytes += (uint)tuple.Count;
            }
            NotifyReceiveDispatched(bytes);
        }