public async Task StopAsync(CancellationToken cancellationToken) { ThrowIfDisposed(); if (!_started) { throw new InvalidOperationException( "The listener has not yet been started or has already been stopped."); } _cancellationTokenSource.Cancel(); await _receiver.CloseAsync(); _receiver = null; _started = false; }