public bool TryDequeue(out Envelope envelope) { if (_prependBuffer.Count > 0) { envelope = _prependBuffer.Pop(); return true; } return _messageQueue.TryDequeue(out envelope); }