private void ScheduleTaskOverThreadPool(CancellationToken token) { if (token.IsCancellationRequested) { return; } _logger.Information("Start scheduling."); foreach (var task in _tasks.GetConsumingEnumerable()) { if (token.IsCancellationRequested) { break; } _customThreadPool.StartAction(() => TryExecuteTask(task)); } _logger.Information("Done scheduling."); }