Soenneker.ConcurrentProcessing.Executor 3.0.133

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Soenneker.ConcurrentProcessing.Executor --version 3.0.133
                    
NuGet\Install-Package Soenneker.ConcurrentProcessing.Executor -Version 3.0.133
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Soenneker.ConcurrentProcessing.Executor" Version="3.0.133" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.ConcurrentProcessing.Executor" Version="3.0.133" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.ConcurrentProcessing.Executor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Soenneker.ConcurrentProcessing.Executor --version 3.0.133
                    
#r "nuget: Soenneker.ConcurrentProcessing.Executor, 3.0.133"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Soenneker.ConcurrentProcessing.Executor@3.0.133
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Soenneker.ConcurrentProcessing.Executor&version=3.0.133
                    
Install as a Cake Addin
#tool nuget:?package=Soenneker.ConcurrentProcessing.Executor&version=3.0.133
                    
Install as a Cake Tool

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

alternate text is missing from this package README image Soenneker.ConcurrentProcessing.Executor

This executor efficiently handles multiple tasks with controlled concurrency. It is ideal for managing parallel execution of tasks while ensuring that no more than a specified number of tasks run simultaneously.

Key Features

  • Concurrent Execution: Limits the number of concurrent tasks to prevent overloading.
  • Failure Handling with Retry Logic: Automatically retries failed tasks with exponential backoff.
  • Async Semaphore: Uses a non-blocking semaphore to control concurrency and ensure thread safety.
  • CancellationToken support for task cancellation.

⚠️ Note:

  • This is not a background processor. It only manages concurrency for tasks that are provided during execution.

Installation

dotnet add package Soenneker.ConcurrentProcessing.Executor

Example: Executing Multiple Tasks with Concurrency Control

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Soenneker.ConcurrentProcessing.Executor;

public class Program
{
    public static async Task Main(string[] args)
    {
        var executor = new ConcurrentProcessingExecutor(maxConcurrency: 3);

        var tasks = new List<Func<CancellationToken, ValueTask>>
        {
            async (ct) => { 
                Console.WriteLine("Task 1 started"); 
                await Task.Delay(500, ct); 
                Console.WriteLine("Task 1 completed"); 
            },

            async (ct) => { 
                Console.WriteLine("Task 2 started"); 
                await Task.Delay(300, ct); 
                Console.WriteLine("Task 2 completed"); 
            },

            async (ct) => { 
                Console.WriteLine("Task 3 started"); 
                await Task.Delay(700, ct); 
                Console.WriteLine("Task 3 completed");
            },

            async (ct) => { 
                Console.WriteLine("Task 4 started"); 
                await Task.Delay(400, ct); 
                Console.WriteLine("Task 4 completed"); 
            }
        };

        await executor.Execute(tasks);
    }
}

Console Output

Task 1 started
Task 2 started
Task 3 started
Task 1 completed
Task 4 started
Task 2 completed
Task 3 completed
Task 4 completed
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Soenneker.ConcurrentProcessing.Executor:

Package Downloads
Soenneker.Cosmos.Repository

A data persistence abstraction layer for Cosmos DB

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.191 0 9/10/2025
3.0.190 109 9/9/2025
3.0.189 32 9/9/2025
3.0.188 64 9/9/2025
3.0.187 408 9/3/2025
3.0.186 131 9/3/2025
3.0.185 236 9/3/2025
3.0.184 133 9/3/2025
3.0.183 138 9/3/2025
3.0.182 140 9/3/2025
3.0.181 137 9/3/2025
3.0.180 363 8/20/2025
3.0.179 599 8/11/2025
3.0.178 174 8/11/2025
3.0.177 157 8/11/2025
3.0.176 125 8/11/2025
3.0.175 124 8/11/2025
3.0.174 580 8/5/2025
3.0.173 257 8/5/2025
3.0.172 220 8/5/2025
3.0.171 736 7/9/2025
3.0.170 200 7/8/2025
3.0.169 240 7/8/2025
3.0.168 970 6/28/2025
3.0.167 180 6/27/2025
3.0.166 82 6/27/2025
3.0.165 78 6/27/2025
3.0.164 172 6/27/2025
3.0.163 1,057 6/10/2025
3.0.162 365 6/10/2025
3.0.161 326 6/10/2025
3.0.160 361 6/3/2025
3.0.159 609 5/27/2025
3.0.158 210 5/27/2025
3.0.157 142 5/27/2025
3.0.156 206 5/27/2025
3.0.155 809 5/23/2025
3.0.154 220 5/23/2025
3.0.153 149 5/23/2025
3.0.152 185 5/22/2025
3.0.151 625 5/14/2025
3.0.150 281 5/13/2025
3.0.149 694 5/8/2025
3.0.148 206 5/8/2025
3.0.147 143 5/8/2025
3.0.146 149 5/7/2025
3.0.145 415 5/5/2025
3.0.144 151 5/5/2025
3.0.143 138 5/5/2025
3.0.142 140 5/5/2025
3.0.141 150 5/5/2025
3.0.140 567 5/5/2025
3.0.139 1,353 4/8/2025
3.0.138 212 4/8/2025
3.0.137 175 4/8/2025
3.0.136 164 4/8/2025
3.0.135 165 4/8/2025
3.0.134 166 4/8/2025
3.0.133 163 4/8/2025
3.0.132 474 4/8/2025
3.0.131 304 4/8/2025
3.0.130 267 4/8/2025
3.0.129 355 4/8/2025
3.0.128 325 4/8/2025
3.0.127 282 4/7/2025
3.0.126 264 4/7/2025
3.0.125 434 4/7/2025
3.0.124 278 4/7/2025
3.0.123 377 4/7/2025
3.0.122 196 4/7/2025
3.0.121 159 4/7/2025
3.0.120 168 4/7/2025
3.0.119 153 4/6/2025
3.0.118 161 4/6/2025
3.0.117 178 4/6/2025
3.0.116 151 4/6/2025
3.0.115 146 4/6/2025
3.0.114 123 4/6/2025
3.0.113 103 4/6/2025
3.0.112 103 4/6/2025
3.0.111 121 4/6/2025
3.0.110 114 4/6/2025
3.0.109 113 4/6/2025
3.0.108 106 4/6/2025
3.0.107 78 4/5/2025
3.0.106 92 4/5/2025
3.0.105 93 4/5/2025
3.0.104 93 4/5/2025
3.0.103 88 4/5/2025
3.0.102 100 4/5/2025
3.0.101 96 4/5/2025
3.0.100 96 4/4/2025
3.0.99 93 4/4/2025
3.0.98 110 4/4/2025
3.0.97 1,987 4/3/2025
3.0.96 432 4/1/2025
3.0.95 280 4/1/2025
3.0.94 200 4/1/2025
3.0.93 403 3/31/2025
3.0.92 203 3/31/2025
3.0.91 355 3/31/2025
3.0.90 234 3/31/2025
3.0.89 220 3/29/2025
3.0.88 98 3/29/2025
3.0.87 148 3/29/2025
3.0.86 725 3/25/2025
3.0.85 542 3/25/2025
3.0.84 211 3/21/2025
3.0.83 235 3/21/2025
3.0.82 338 3/18/2025
3.0.81 252 3/18/2025
3.0.80 232 3/15/2025
3.0.79 125 3/15/2025
3.0.78 262 3/12/2025
3.0.77 173 3/12/2025
3.0.76 168 3/12/2025
3.0.75 183 3/12/2025
3.0.74 178 3/11/2025
3.0.73 194 3/11/2025
3.0.72 176 3/11/2025
3.0.71 418 3/11/2025
3.0.70 275 3/11/2025
3.0.69 242 3/11/2025
3.0.68 169 3/11/2025
3.0.67 255 3/11/2025
3.0.66 359 3/7/2025
3.0.65 271 3/7/2025
3.0.64 387 3/2/2025
3.0.63 248 3/2/2025
3.0.62 117 3/2/2025
3.0.61 174 3/2/2025
3.0.60 164 3/1/2025
3.0.59 201 3/1/2025
3.0.58 110 3/1/2025
3.0.57 160 3/1/2025
3.0.56 243 3/1/2025
3.0.55 110 3/1/2025
3.0.54 102 3/1/2025
3.0.53 108 3/1/2025
3.0.52 101 3/1/2025
3.0.51 183 3/1/2025
3.0.50 106 3/1/2025
3.0.49 308 2/25/2025
3.0.48 158 2/25/2025
3.0.47 161 2/25/2025
3.0.46 179 2/25/2025
3.0.45 117 2/25/2025
3.0.44 216 2/24/2025
3.0.43 181 2/23/2025
3.0.42 115 2/22/2025
3.0.41 284 2/22/2025
3.0.40 264 2/22/2025
3.0.39 205 2/22/2025
3.0.38 131 2/22/2025
3.0.37 174 2/22/2025
3.0.36 194 2/22/2025
3.0.35 115 2/21/2025
3.0.34 284 2/21/2025
3.0.33 178 2/21/2025
3.0.32 318 2/19/2025
3.0.31 411 2/18/2025
3.0.30 182 2/18/2025
3.0.29 251 2/18/2025
3.0.28 121 2/18/2025
3.0.27 339 2/14/2025
3.0.26 260 2/14/2025
3.0.25 199 2/13/2025
3.0.24 218 2/13/2025
3.0.23 326 2/12/2025
3.0.22 116 2/12/2025
3.0.21 190 2/12/2025
3.0.20 178 2/12/2025
3.0.19 244 2/11/2025
3.0.18 126 2/11/2025
3.0.17 300 2/11/2025
3.0.16 113 2/11/2025
3.0.15 181 2/11/2025
3.0.14 181 2/11/2025
3.0.13 120 2/11/2025
3.0.12 131 2/10/2025
3.0.11 116 2/10/2025
3.0.10 163 2/10/2025
3.0.9 180 2/10/2025
3.0.8 119 2/10/2025
3.0.7 115 2/10/2025
3.0.6 127 2/10/2025
3.0.5 111 2/10/2025
3.0.4 172 2/9/2025
3.0.3 248 2/9/2025
3.0.2 259 2/8/2025
3.0.1 255 2/7/2025