DotNetWorkQueue.Queue.MessageProcessing.DoTry C# (CSharp) Method

DoTry() private method

Tries the process the new incoming message.
private DoTry ( IMessageContext context ) : void
context IMessageContext The context.
return void
        private void DoTry(IMessageContext context)
        {
            var transportMessage = _receiveMessages.ReceiveMessage(context);

            if (transportMessage == null)
            {
                //delay processing since we have no messages to process
                if (!_idle)
                {
                    Idle(this, EventArgs.Empty);
                    _idle = true;
                }
                _noMessageToProcessBackoffHelper.Value.Wait();
                return;
            }

            //reset the back off counter - we have a message to process, so the wait times are now reset
            _noMessageToProcessBackoffHelper.Value.Reset();
            if (_idle)
            {
                NotIdle(this, EventArgs.Empty);
                _idle = false;
            }

            _processMessage.Handle(context, transportMessage);
        }
    }