Exemplo n.º 1
0
        public void Peek(IList <object> messages, int maxNumberOfMessages)
        {
            lock (_syncLock)
            {
                _readList.Clear();
                _queue.Peek(_readList, maxNumberOfMessages);
            }

            // Wait if there are no more data to be delivered.
            if (!_readList.Any())
            {
                _dataEnqueuedEvent.Reset();
                if (!_dataEnqueuedEvent.WaitOne(100))
                {
                    return;
                }

                lock (_syncLock)
                {
                    _readList.Clear();
                    _queue.Peek(_readList, maxNumberOfMessages);
                }
            }

            foreach (var buffer in _readList)
            {
                var obj = JSON.Parse(Encoding.UTF8.GetString(buffer));
                messages.Add(obj);
            }
        }
Exemplo n.º 2
0
        public void Peek(IList <object> messages, int maxNumberOfMessages)
        {
            var bufferList = new List <byte[]>();

            lock (_syncLock)
            {
                _queue.Peek(bufferList, maxNumberOfMessages);
            }

            // Wait if there are no more data to be delivered.
            if (!bufferList.Any())
            {
                _dataEnqueuedEvent.Reset();
                if (!_dataEnqueuedEvent.WaitOne(100))
                {
                    return;
                }

                lock (_syncLock)
                {
                    _queue.Peek(bufferList, maxNumberOfMessages);
                }
            }

            foreach (var buffer in bufferList)
            {
                var obj = _itemSerializer.Deserialize(buffer);
                messages.Add(obj);
            }
        }