private ValueTask StartConsumerPipeline() { _ = Task.Run(async() => { pipelineActive = true; while (await headNetworkBlock.OutputAvailableAsync(cancellationTokenSource.Token)) { TMessage msg = await headNetworkBlock.ReceiveAsync(cancellationTokenSource.Token); ISpiffyWorker <T> worker = await GetAvailableWorker(); _ = worker.RunAsync(msg); } pipelineActive = false; }); return(new ValueTask()); }