public void PopMessages(int numberOfMessages) { _readList.Clear(); if (numberOfMessages == 0) { return; } lock (_syncLock) { _queue.Dequeue(_readList, numberOfMessages); _queueCount -= _readList.Count; } }
/// <summary> /// Remove messages from the queue /// </summary> /// <param name="messages"></param> /// <param name="maxNumberOfMessages"></param> public void Dequeue(IList <object> messages, int maxNumberOfMessages) { if (messages == null) { throw new ArgumentNullException("messages"); } if (maxNumberOfMessages == 0) { throw new ArgumentOutOfRangeException("maxNumberOfMessages", maxNumberOfMessages, "Must specify a valid count."); } lock (_syncLock) { var bufferList = new List <byte[]>(); _queue.Dequeue(bufferList, maxNumberOfMessages); foreach (var buffer in bufferList) { var obj = _itemSerializer.Deserialize(buffer); messages.Add(obj); } } }