public async Task StartAsync(CancellationToken cancellationToken)
        {
            ThrowIfDisposed();

            if (_started)
            {
                throw new InvalidOperationException("The listener has already been started.");
            }

            _receiver = _config.MessagingProvider.GetMessageClient(_topicName);

            await _receiver.RegisterMessageHandler(ProcessMessageAsync);

            _started = true;
        }