public IMessage Receive()
{
CheckClosed();
CheckMessageListener();
SendPullRequest(0);
MessageDispatch dispatch = this.Dequeue(TimeSpan.FromMilliseconds(-1));
if(dispatch == null)
{
return null;
}
BeforeMessageIsConsumed(dispatch);
AfterMessageIsConsumed(dispatch, false);
return CreateActiveMQMessage(dispatch);
}