protected async Task DispatchRoutine(string queueName) { var message = _queueProvider.AskMessage(queueName); if (message != null) { var entity = _messageProvider.ExtractObject(message.Body); await OnSubscribe(entity); _queueProvider.DeleteMessage(message); } else { _logger.Info("No messages"); await Task.Delay(_threadSleep); } }