Rhino.Queues.QueueManager.Peek C# (CSharp) Method

Peek() public method

public Peek ( string queueName, string subqueue, System.TimeSpan timeout ) : Rhino.Queues.Model.Message
queueName string
subqueue string
timeout System.TimeSpan
return Rhino.Queues.Model.Message
        public Message Peek(string queueName, string subqueue, TimeSpan timeout)
        {
            var remaining = timeout;
            while (true)
            {
                var message = PeekMessageFromQueue(queueName, subqueue);
                if (message != null)
                    return message;

                lock (newMessageArrivedLock)
                {
                    message = PeekMessageFromQueue(queueName, subqueue);
                    if (message != null)
                        return message;

                    var sp = Stopwatch.StartNew();
                    if (Monitor.Wait(newMessageArrivedLock, remaining) == false)
                        throw new TimeoutException("No message arrived in the specified timeframe " + timeout);
                    remaining = Max(TimeSpan.Zero, remaining - sp.Elapsed);
                }
            }
        }

Same methods

QueueManager::Peek ( string queueName ) : Rhino.Queues.Model.Message
QueueManager::Peek ( string queueName, System.TimeSpan timeout ) : Rhino.Queues.Model.Message
QueueManager::Peek ( string queueName, string subqueue ) : Rhino.Queues.Model.Message