Task InvokeTransport(OutgoingTransportContext context) { if (executingTransportPipeline.Count == 0) { return Task.CompletedTask; } IOutgoingTransportStep step = executingTransportPipeline.Dequeue(); return step.Invoke(context, () => InvokeTransport(context)); }