public static void Shutdown(this ChannelBase channel, ILogger logger = null)
Shuts down a channel semi-synchronously. This method initially calls Dispose()
if the channel implements IDisposable (e.g. in the case of )
and then calls . This method does not wait for the task
to complete, but observes any exceptions (whether the task is faulted or canceled), optionally logging
them to logger.
The channel to shut down.
An optional logger to record any errors during asynchronous shutdown.