public InMemoryFlowService(IServiceProvider serviceProvider, ISpanConsumer spanConsumer, IOptions <InMemoryFlowOptions> options, ILogger <InMemoryFlowService> logger) { _logger = logger; _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); _spanConsumer = spanConsumer ?? throw new ArgumentNullException(nameof(spanConsumer)); _inMemoryFlowOptions = options?.Value ?? throw new ArgumentNullException(nameof(options)); _consumerTasks = new Task[_inMemoryFlowOptions.MaxConsumer == 0 ? DEFAUKT_CONSUMER : _inMemoryFlowOptions.MaxConsumer]; _cancellationTokenSource = new CancellationTokenSource(); }